diff --git a/README.md b/README.md
index b15c2fa5..aa9ca6f9 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,11 @@
-

+
- # 🟥🟦 Quizi 🟨🟩
+ # 🟥🟦 Quizard 🟨🟩
A quiz/trivia game with different modes and categories that you can select, as well as wildcards to help you. The questions are generated by artificial intelligence using the [Cohere API](https://dashboard.cohere.ai/welcome/register).
@@ -35,7 +35,7 @@ A quiz/trivia game with different modes and categories that you can select, as w
## About The Project
-Quizi is a quiz/trivia game made with with [Cohere](https://cohere.ai). You can select different game modes and topics, you also have wildcards. Cohere's AI will generate the questions and answers for you.
+Quizard is a quiz/trivia game made with with [Cohere](https://cohere.ai). You can select different game modes and topics, you also have wildcards. Cohere's AI will generate the questions and answers for you. This project was forked from cosmoart/quiz-game and modified to add a backend using Django Rest Framework to serve pre-generated questions.
> **Note:** Due to Cohere's policy change (from 100 to 5 free calls) now only some questions are generated by Cohere. The rest are pre-generated.
@@ -48,22 +48,16 @@ Quizi is a quiz/trivia game made with with [Cohere](https://cohere.ai). You can
-
+
|
-
- |
-
-
+
|
|
-
-
- |
|
@@ -72,9 +66,6 @@ Quizi is a quiz/trivia game made with with [Cohere](https://cohere.ai). You can
|
-
-
- |
|
@@ -111,7 +102,7 @@ List of the frameworks, libraries and tools used to build the project.
1. Clone or fork the repo
```sh
-git clone https://github.com/cosmoart/quiz-game
+git clone https://github.com/hamidkab/quiz-game
```
2. Change directory to `source_code`
```sh
@@ -126,6 +117,32 @@ npm install
npm run dev
```
+## Running Backend
+1. From repository root:
+```
+cd backend
+python3 -m venv .venv # if not already created
+source .venv/bin/activate
+pip install --upgrade pip
+pip install -r requirements.txt
+```
+2. Run migrations (required if you later add models):
+```
+python manage.py makemigrations
+python manage.py migrate
+```
+3. Run Tests
+```
+python manage.py test
+```
+4. Start Development Server
+```
+python manage.py runserver 8000
+```
+Verify endpoints:
+- http://127.0.0.1:8000/api/questions/
+- http://127.0.0.1:8000/api/categories/
+
If you are in development environment all the questions are pre-generated, if you want to use the Cohere API you have to create a `.env.local` file with the Cohere API key at `source_code` and comment the `if` in `source_code/src/helpers/getQuestions.js`. You can get one Cohere Api key [here](https://dashboard.cohere.ai/welcome/register).
The `.env.local` file should look like this:
@@ -160,11 +177,6 @@ Distributed under the MIT License. See [`LICENSE.txt`](https://github.com/cosmoa
⬆️ Back to top
-
-## Contact
-- My website - [cosmoart.vercel.app](https://cosmoart.vercel.app)
-- Twitter - [@CosmoArt0](https://twitter.com/cosmoart0)
-- Instagram - [@cosmo_art0](https://www.instagram.com/cosmo_art0/)
-⬆️ Back to top
+
diff --git a/backend/.venv/bin/Activate.ps1 b/backend/.venv/bin/Activate.ps1
new file mode 100644
index 00000000..b49d77ba
--- /dev/null
+++ b/backend/.venv/bin/Activate.ps1
@@ -0,0 +1,247 @@
+<#
+.Synopsis
+Activate a Python virtual environment for the current PowerShell session.
+
+.Description
+Pushes the python executable for a virtual environment to the front of the
+$Env:PATH environment variable and sets the prompt to signify that you are
+in a Python virtual environment. Makes use of the command line switches as
+well as the `pyvenv.cfg` file values present in the virtual environment.
+
+.Parameter VenvDir
+Path to the directory that contains the virtual environment to activate. The
+default value for this is the parent of the directory that the Activate.ps1
+script is located within.
+
+.Parameter Prompt
+The prompt prefix to display when this virtual environment is activated. By
+default, this prompt is the name of the virtual environment folder (VenvDir)
+surrounded by parentheses and followed by a single space (ie. '(.venv) ').
+
+.Example
+Activate.ps1
+Activates the Python virtual environment that contains the Activate.ps1 script.
+
+.Example
+Activate.ps1 -Verbose
+Activates the Python virtual environment that contains the Activate.ps1 script,
+and shows extra information about the activation as it executes.
+
+.Example
+Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
+Activates the Python virtual environment located in the specified location.
+
+.Example
+Activate.ps1 -Prompt "MyPython"
+Activates the Python virtual environment that contains the Activate.ps1 script,
+and prefixes the current prompt with the specified string (surrounded in
+parentheses) while the virtual environment is active.
+
+.Notes
+On Windows, it may be required to enable this Activate.ps1 script by setting the
+execution policy for the user. You can do this by issuing the following PowerShell
+command:
+
+PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
+
+For more information on Execution Policies:
+https://go.microsoft.com/fwlink/?LinkID=135170
+
+#>
+Param(
+ [Parameter(Mandatory = $false)]
+ [String]
+ $VenvDir,
+ [Parameter(Mandatory = $false)]
+ [String]
+ $Prompt
+)
+
+<# Function declarations --------------------------------------------------- #>
+
+<#
+.Synopsis
+Remove all shell session elements added by the Activate script, including the
+addition of the virtual environment's Python executable from the beginning of
+the PATH variable.
+
+.Parameter NonDestructive
+If present, do not remove this function from the global namespace for the
+session.
+
+#>
+function global:deactivate ([switch]$NonDestructive) {
+ # Revert to original values
+
+ # The prior prompt:
+ if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
+ Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
+ Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
+ }
+
+ # The prior PYTHONHOME:
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
+ Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
+ Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
+ }
+
+ # The prior PATH:
+ if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
+ Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
+ Remove-Item -Path Env:_OLD_VIRTUAL_PATH
+ }
+
+ # Just remove the VIRTUAL_ENV altogether:
+ if (Test-Path -Path Env:VIRTUAL_ENV) {
+ Remove-Item -Path env:VIRTUAL_ENV
+ }
+
+ # Just remove VIRTUAL_ENV_PROMPT altogether.
+ if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
+ Remove-Item -Path env:VIRTUAL_ENV_PROMPT
+ }
+
+ # Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
+ if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
+ Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
+ }
+
+ # Leave deactivate function in the global namespace if requested:
+ if (-not $NonDestructive) {
+ Remove-Item -Path function:deactivate
+ }
+}
+
+<#
+.Description
+Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
+given folder, and returns them in a map.
+
+For each line in the pyvenv.cfg file, if that line can be parsed into exactly
+two strings separated by `=` (with any amount of whitespace surrounding the =)
+then it is considered a `key = value` line. The left hand string is the key,
+the right hand is the value.
+
+If the value starts with a `'` or a `"` then the first and last character is
+stripped from the value before being captured.
+
+.Parameter ConfigDir
+Path to the directory that contains the `pyvenv.cfg` file.
+#>
+function Get-PyVenvConfig(
+ [String]
+ $ConfigDir
+) {
+ Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
+
+ # Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
+ $pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
+
+ # An empty map will be returned if no config file is found.
+ $pyvenvConfig = @{ }
+
+ if ($pyvenvConfigPath) {
+
+ Write-Verbose "File exists, parse `key = value` lines"
+ $pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
+
+ $pyvenvConfigContent | ForEach-Object {
+ $keyval = $PSItem -split "\s*=\s*", 2
+ if ($keyval[0] -and $keyval[1]) {
+ $val = $keyval[1]
+
+ # Remove extraneous quotations around a string value.
+ if ("'""".Contains($val.Substring(0, 1))) {
+ $val = $val.Substring(1, $val.Length - 2)
+ }
+
+ $pyvenvConfig[$keyval[0]] = $val
+ Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
+ }
+ }
+ }
+ return $pyvenvConfig
+}
+
+
+<# Begin Activate script --------------------------------------------------- #>
+
+# Determine the containing directory of this script
+$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
+$VenvExecDir = Get-Item -Path $VenvExecPath
+
+Write-Verbose "Activation script is located in path: '$VenvExecPath'"
+Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
+Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
+
+# Set values required in priority: CmdLine, ConfigFile, Default
+# First, get the location of the virtual environment, it might not be
+# VenvExecDir if specified on the command line.
+if ($VenvDir) {
+ Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
+}
+else {
+ Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
+ $VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
+ Write-Verbose "VenvDir=$VenvDir"
+}
+
+# Next, read the `pyvenv.cfg` file to determine any required value such
+# as `prompt`.
+$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
+
+# Next, set the prompt from the command line, or the config file, or
+# just use the name of the virtual environment folder.
+if ($Prompt) {
+ Write-Verbose "Prompt specified as argument, using '$Prompt'"
+}
+else {
+ Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
+ if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
+ Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
+ $Prompt = $pyvenvCfg['prompt'];
+ }
+ else {
+ Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
+ Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
+ $Prompt = Split-Path -Path $venvDir -Leaf
+ }
+}
+
+Write-Verbose "Prompt = '$Prompt'"
+Write-Verbose "VenvDir='$VenvDir'"
+
+# Deactivate any currently active virtual environment, but leave the
+# deactivate function in place.
+deactivate -nondestructive
+
+# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
+# that there is an activated venv.
+$env:VIRTUAL_ENV = $VenvDir
+
+if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
+
+ Write-Verbose "Setting prompt to '$Prompt'"
+
+ # Set the prompt to include the env name
+ # Make sure _OLD_VIRTUAL_PROMPT is global
+ function global:_OLD_VIRTUAL_PROMPT { "" }
+ Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
+ New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
+
+ function global:prompt {
+ Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
+ _OLD_VIRTUAL_PROMPT
+ }
+ $env:VIRTUAL_ENV_PROMPT = $Prompt
+}
+
+# Clear PYTHONHOME
+if (Test-Path -Path Env:PYTHONHOME) {
+ Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
+ Remove-Item -Path Env:PYTHONHOME
+}
+
+# Add the venv to the PATH
+Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
+$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
diff --git a/backend/.venv/bin/activate b/backend/.venv/bin/activate
new file mode 100644
index 00000000..962ecafd
--- /dev/null
+++ b/backend/.venv/bin/activate
@@ -0,0 +1,69 @@
+# This file must be used with "source bin/activate" *from bash*
+# you cannot run it directly
+
+deactivate () {
+ # reset old environment variables
+ if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
+ PATH="${_OLD_VIRTUAL_PATH:-}"
+ export PATH
+ unset _OLD_VIRTUAL_PATH
+ fi
+ if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
+ PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
+ export PYTHONHOME
+ unset _OLD_VIRTUAL_PYTHONHOME
+ fi
+
+ # This should detect bash and zsh, which have a hash command that must
+ # be called to get it to forget past commands. Without forgetting
+ # past commands the $PATH changes we made may not be respected
+ if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
+ hash -r 2> /dev/null
+ fi
+
+ if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
+ PS1="${_OLD_VIRTUAL_PS1:-}"
+ export PS1
+ unset _OLD_VIRTUAL_PS1
+ fi
+
+ unset VIRTUAL_ENV
+ unset VIRTUAL_ENV_PROMPT
+ if [ ! "${1:-}" = "nondestructive" ] ; then
+ # Self destruct!
+ unset -f deactivate
+ fi
+}
+
+# unset irrelevant variables
+deactivate nondestructive
+
+VIRTUAL_ENV="/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv"
+export VIRTUAL_ENV
+
+_OLD_VIRTUAL_PATH="$PATH"
+PATH="$VIRTUAL_ENV/bin:$PATH"
+export PATH
+
+# unset PYTHONHOME if set
+# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
+# could use `if (set -u; : $PYTHONHOME) ;` in bash
+if [ -n "${PYTHONHOME:-}" ] ; then
+ _OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
+ unset PYTHONHOME
+fi
+
+if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
+ _OLD_VIRTUAL_PS1="${PS1:-}"
+ PS1="(.venv) ${PS1:-}"
+ export PS1
+ VIRTUAL_ENV_PROMPT="(.venv) "
+ export VIRTUAL_ENV_PROMPT
+fi
+
+# This should detect bash and zsh, which have a hash command that must
+# be called to get it to forget past commands. Without forgetting
+# past commands the $PATH changes we made may not be respected
+if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then
+ hash -r 2> /dev/null
+fi
diff --git a/backend/.venv/bin/activate.csh b/backend/.venv/bin/activate.csh
new file mode 100644
index 00000000..dbcac604
--- /dev/null
+++ b/backend/.venv/bin/activate.csh
@@ -0,0 +1,26 @@
+# This file must be used with "source bin/activate.csh" *from csh*.
+# You cannot run it directly.
+# Created by Davide Di Blasi .
+# Ported to Python 3.3 venv by Andrew Svetlov
+
+alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
+
+# Unset irrelevant variables.
+deactivate nondestructive
+
+setenv VIRTUAL_ENV "/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv"
+
+set _OLD_VIRTUAL_PATH="$PATH"
+setenv PATH "$VIRTUAL_ENV/bin:$PATH"
+
+
+set _OLD_VIRTUAL_PROMPT="$prompt"
+
+if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
+ set prompt = "(.venv) $prompt"
+ setenv VIRTUAL_ENV_PROMPT "(.venv) "
+endif
+
+alias pydoc python -m pydoc
+
+rehash
diff --git a/backend/.venv/bin/activate.fish b/backend/.venv/bin/activate.fish
new file mode 100644
index 00000000..17316259
--- /dev/null
+++ b/backend/.venv/bin/activate.fish
@@ -0,0 +1,69 @@
+# This file must be used with "source /bin/activate.fish" *from fish*
+# (https://fishshell.com/); you cannot run it directly.
+
+function deactivate -d "Exit virtual environment and return to normal shell environment"
+ # reset old environment variables
+ if test -n "$_OLD_VIRTUAL_PATH"
+ set -gx PATH $_OLD_VIRTUAL_PATH
+ set -e _OLD_VIRTUAL_PATH
+ end
+ if test -n "$_OLD_VIRTUAL_PYTHONHOME"
+ set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
+ set -e _OLD_VIRTUAL_PYTHONHOME
+ end
+
+ if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
+ set -e _OLD_FISH_PROMPT_OVERRIDE
+ # prevents error when using nested fish instances (Issue #93858)
+ if functions -q _old_fish_prompt
+ functions -e fish_prompt
+ functions -c _old_fish_prompt fish_prompt
+ functions -e _old_fish_prompt
+ end
+ end
+
+ set -e VIRTUAL_ENV
+ set -e VIRTUAL_ENV_PROMPT
+ if test "$argv[1]" != "nondestructive"
+ # Self-destruct!
+ functions -e deactivate
+ end
+end
+
+# Unset irrelevant variables.
+deactivate nondestructive
+
+set -gx VIRTUAL_ENV "/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv"
+
+set -gx _OLD_VIRTUAL_PATH $PATH
+set -gx PATH "$VIRTUAL_ENV/bin" $PATH
+
+# Unset PYTHONHOME if set.
+if set -q PYTHONHOME
+ set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
+ set -e PYTHONHOME
+end
+
+if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
+ # fish uses a function instead of an env var to generate the prompt.
+
+ # Save the current fish_prompt function as the function _old_fish_prompt.
+ functions -c fish_prompt _old_fish_prompt
+
+ # With the original prompt function renamed, we can override with our own.
+ function fish_prompt
+ # Save the return status of the last command.
+ set -l old_status $status
+
+ # Output the venv prompt; color taken from the blue of the Python logo.
+ printf "%s%s%s" (set_color 4B8BBE) "(.venv) " (set_color normal)
+
+ # Restore the return status of the previous command.
+ echo "exit $old_status" | .
+ # Output the original/"old" prompt.
+ _old_fish_prompt
+ end
+
+ set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
+ set -gx VIRTUAL_ENV_PROMPT "(.venv) "
+end
diff --git a/backend/.venv/bin/django-admin b/backend/.venv/bin/django-admin
new file mode 100755
index 00000000..412e6eab
--- /dev/null
+++ b/backend/.venv/bin/django-admin
@@ -0,0 +1,7 @@
+#!/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv/bin/python3.11
+import sys
+from django.core.management import execute_from_command_line
+if __name__ == '__main__':
+ if sys.argv[0].endswith('.exe'):
+ sys.argv[0] = sys.argv[0][:-4]
+ sys.exit(execute_from_command_line())
diff --git a/backend/.venv/bin/pip b/backend/.venv/bin/pip
new file mode 100755
index 00000000..d4a7d799
--- /dev/null
+++ b/backend/.venv/bin/pip
@@ -0,0 +1,8 @@
+#!/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv/bin/python3.11
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/backend/.venv/bin/pip3 b/backend/.venv/bin/pip3
new file mode 100755
index 00000000..d4a7d799
--- /dev/null
+++ b/backend/.venv/bin/pip3
@@ -0,0 +1,8 @@
+#!/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv/bin/python3.11
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/backend/.venv/bin/pip3.11 b/backend/.venv/bin/pip3.11
new file mode 100755
index 00000000..d4a7d799
--- /dev/null
+++ b/backend/.venv/bin/pip3.11
@@ -0,0 +1,8 @@
+#!/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv/bin/python3.11
+# -*- coding: utf-8 -*-
+import re
+import sys
+from pip._internal.cli.main import main
+if __name__ == '__main__':
+ sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
+ sys.exit(main())
diff --git a/backend/.venv/bin/python b/backend/.venv/bin/python
new file mode 120000
index 00000000..6e7f3c7d
--- /dev/null
+++ b/backend/.venv/bin/python
@@ -0,0 +1 @@
+python3.11
\ No newline at end of file
diff --git a/backend/.venv/bin/python3 b/backend/.venv/bin/python3
new file mode 120000
index 00000000..6e7f3c7d
--- /dev/null
+++ b/backend/.venv/bin/python3
@@ -0,0 +1 @@
+python3.11
\ No newline at end of file
diff --git a/backend/.venv/bin/python3.11 b/backend/.venv/bin/python3.11
new file mode 120000
index 00000000..2d175777
--- /dev/null
+++ b/backend/.venv/bin/python3.11
@@ -0,0 +1 @@
+/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11
\ No newline at end of file
diff --git a/backend/.venv/bin/sqlformat b/backend/.venv/bin/sqlformat
new file mode 100755
index 00000000..4b3ea317
--- /dev/null
+++ b/backend/.venv/bin/sqlformat
@@ -0,0 +1,7 @@
+#!/Users/obinna/Desktop/quiz_app_clone/quiz-game/backend/.venv/bin/python3.11
+import sys
+from sqlparse.__main__ import main
+if __name__ == '__main__':
+ if sys.argv[0].endswith('.exe'):
+ sys.argv[0] = sys.argv[0][:-4]
+ sys.exit(main())
diff --git a/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py
new file mode 100644
index 00000000..f987a536
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__init__.py
@@ -0,0 +1,222 @@
+# don't import any costly modules
+import sys
+import os
+
+
+is_pypy = '__pypy__' in sys.builtin_module_names
+
+
+def warn_distutils_present():
+ if 'distutils' not in sys.modules:
+ return
+ if is_pypy and sys.version_info < (3, 7):
+ # PyPy for 3.6 unconditionally imports distutils, so bypass the warning
+ # https://foss.heptapod.net/pypy/pypy/-/blob/be829135bc0d758997b3566062999ee8b23872b4/lib-python/3/site.py#L250
+ return
+ import warnings
+
+ warnings.warn(
+ "Distutils was imported before Setuptools, but importing Setuptools "
+ "also replaces the `distutils` module in `sys.modules`. This may lead "
+ "to undesirable behaviors or errors. To avoid these issues, avoid "
+ "using distutils directly, ensure that setuptools is installed in the "
+ "traditional way (e.g. not an editable install), and/or make sure "
+ "that setuptools is always imported before distutils."
+ )
+
+
+def clear_distutils():
+ if 'distutils' not in sys.modules:
+ return
+ import warnings
+
+ warnings.warn("Setuptools is replacing distutils.")
+ mods = [
+ name
+ for name in sys.modules
+ if name == "distutils" or name.startswith("distutils.")
+ ]
+ for name in mods:
+ del sys.modules[name]
+
+
+def enabled():
+ """
+ Allow selection of distutils by environment variable.
+ """
+ which = os.environ.get('SETUPTOOLS_USE_DISTUTILS', 'local')
+ return which == 'local'
+
+
+def ensure_local_distutils():
+ import importlib
+
+ clear_distutils()
+
+ # With the DistutilsMetaFinder in place,
+ # perform an import to cause distutils to be
+ # loaded from setuptools._distutils. Ref #2906.
+ with shim():
+ importlib.import_module('distutils')
+
+ # check that submodules load as expected
+ core = importlib.import_module('distutils.core')
+ assert '_distutils' in core.__file__, core.__file__
+ assert 'setuptools._distutils.log' not in sys.modules
+
+
+def do_override():
+ """
+ Ensure that the local copy of distutils is preferred over stdlib.
+
+ See https://github.com/pypa/setuptools/issues/417#issuecomment-392298401
+ for more motivation.
+ """
+ if enabled():
+ warn_distutils_present()
+ ensure_local_distutils()
+
+
+class _TrivialRe:
+ def __init__(self, *patterns):
+ self._patterns = patterns
+
+ def match(self, string):
+ return all(pat in string for pat in self._patterns)
+
+
+class DistutilsMetaFinder:
+ def find_spec(self, fullname, path, target=None):
+ # optimization: only consider top level modules and those
+ # found in the CPython test suite.
+ if path is not None and not fullname.startswith('test.'):
+ return
+
+ method_name = 'spec_for_{fullname}'.format(**locals())
+ method = getattr(self, method_name, lambda: None)
+ return method()
+
+ def spec_for_distutils(self):
+ if self.is_cpython():
+ return
+
+ import importlib
+ import importlib.abc
+ import importlib.util
+
+ try:
+ mod = importlib.import_module('setuptools._distutils')
+ except Exception:
+ # There are a couple of cases where setuptools._distutils
+ # may not be present:
+ # - An older Setuptools without a local distutils is
+ # taking precedence. Ref #2957.
+ # - Path manipulation during sitecustomize removes
+ # setuptools from the path but only after the hook
+ # has been loaded. Ref #2980.
+ # In either case, fall back to stdlib behavior.
+ return
+
+ class DistutilsLoader(importlib.abc.Loader):
+ def create_module(self, spec):
+ mod.__name__ = 'distutils'
+ return mod
+
+ def exec_module(self, module):
+ pass
+
+ return importlib.util.spec_from_loader(
+ 'distutils', DistutilsLoader(), origin=mod.__file__
+ )
+
+ @staticmethod
+ def is_cpython():
+ """
+ Suppress supplying distutils for CPython (build and tests).
+ Ref #2965 and #3007.
+ """
+ return os.path.isfile('pybuilddir.txt')
+
+ def spec_for_pip(self):
+ """
+ Ensure stdlib distutils when running under pip.
+ See pypa/pip#8761 for rationale.
+ """
+ if self.pip_imported_during_build():
+ return
+ clear_distutils()
+ self.spec_for_distutils = lambda: None
+
+ @classmethod
+ def pip_imported_during_build(cls):
+ """
+ Detect if pip is being imported in a build script. Ref #2355.
+ """
+ import traceback
+
+ return any(
+ cls.frame_file_is_setup(frame) for frame, line in traceback.walk_stack(None)
+ )
+
+ @staticmethod
+ def frame_file_is_setup(frame):
+ """
+ Return True if the indicated frame suggests a setup.py file.
+ """
+ # some frames may not have __file__ (#2940)
+ return frame.f_globals.get('__file__', '').endswith('setup.py')
+
+ def spec_for_sensitive_tests(self):
+ """
+ Ensure stdlib distutils when running select tests under CPython.
+
+ python/cpython#91169
+ """
+ clear_distutils()
+ self.spec_for_distutils = lambda: None
+
+ sensitive_tests = (
+ [
+ 'test.test_distutils',
+ 'test.test_peg_generator',
+ 'test.test_importlib',
+ ]
+ if sys.version_info < (3, 10)
+ else [
+ 'test.test_distutils',
+ ]
+ )
+
+
+for name in DistutilsMetaFinder.sensitive_tests:
+ setattr(
+ DistutilsMetaFinder,
+ f'spec_for_{name}',
+ DistutilsMetaFinder.spec_for_sensitive_tests,
+ )
+
+
+DISTUTILS_FINDER = DistutilsMetaFinder()
+
+
+def add_shim():
+ DISTUTILS_FINDER in sys.meta_path or insert_shim()
+
+
+class shim:
+ def __enter__(self):
+ insert_shim()
+
+ def __exit__(self, exc, value, tb):
+ remove_shim()
+
+
+def insert_shim():
+ sys.meta_path.insert(0, DISTUTILS_FINDER)
+
+
+def remove_shim():
+ try:
+ sys.meta_path.remove(DISTUTILS_FINDER)
+ except ValueError:
+ pass
diff --git a/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..11932e2a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc
new file mode 100644
index 00000000..f894bbbf
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/__pycache__/override.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/_distutils_hack/override.py b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/override.py
new file mode 100644
index 00000000..2cc433a4
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/_distutils_hack/override.py
@@ -0,0 +1 @@
+__import__('_distutils_hack').do_override()
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/INSTALLER b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/METADATA b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/METADATA
new file mode 100644
index 00000000..2cc2a6f4
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/METADATA
@@ -0,0 +1,247 @@
+Metadata-Version: 2.4
+Name: asgiref
+Version: 3.11.0
+Summary: ASGI specs, helper code, and adapters
+Home-page: https://github.com/django/asgiref/
+Author: Django Software Foundation
+Author-email: foundation@djangoproject.com
+License: BSD-3-Clause
+Project-URL: Documentation, https://asgi.readthedocs.io/
+Project-URL: Further Documentation, https://docs.djangoproject.com/en/stable/topics/async/#async-adapter-functions
+Project-URL: Changelog, https://github.com/django/asgiref/blob/master/CHANGELOG.txt
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Web Environment
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Topic :: Internet :: WWW/HTTP
+Requires-Python: >=3.9
+License-File: LICENSE
+Requires-Dist: typing_extensions>=4; python_version < "3.11"
+Provides-Extra: tests
+Requires-Dist: pytest; extra == "tests"
+Requires-Dist: pytest-asyncio; extra == "tests"
+Requires-Dist: mypy>=1.14.0; extra == "tests"
+Dynamic: license-file
+
+asgiref
+=======
+
+.. image:: https://github.com/django/asgiref/actions/workflows/tests.yml/badge.svg
+ :target: https://github.com/django/asgiref/actions/workflows/tests.yml
+
+.. image:: https://img.shields.io/pypi/v/asgiref.svg
+ :target: https://pypi.python.org/pypi/asgiref
+
+ASGI is a standard for Python asynchronous web apps and servers to communicate
+with each other, and positioned as an asynchronous successor to WSGI. You can
+read more at https://asgi.readthedocs.io/en/latest/
+
+This package includes ASGI base libraries, such as:
+
+* Sync-to-async and async-to-sync function wrappers, ``asgiref.sync``
+* Server base classes, ``asgiref.server``
+* A WSGI-to-ASGI adapter, in ``asgiref.wsgi``
+
+
+Function wrappers
+-----------------
+
+These allow you to wrap or decorate async or sync functions to call them from
+the other style (so you can call async functions from a synchronous thread,
+or vice-versa).
+
+In particular:
+
+* AsyncToSync lets a synchronous subthread stop and wait while the async
+ function is called on the main thread's event loop, and then control is
+ returned to the thread when the async function is finished.
+
+* SyncToAsync lets async code call a synchronous function, which is run in
+ a threadpool and control returned to the async coroutine when the synchronous
+ function completes.
+
+The idea is to make it easier to call synchronous APIs from async code and
+asynchronous APIs from synchronous code so it's easier to transition code from
+one style to the other. In the case of Channels, we wrap the (synchronous)
+Django view system with SyncToAsync to allow it to run inside the (asynchronous)
+ASGI server.
+
+Note that exactly what threads things run in is very specific, and aimed to
+keep maximum compatibility with old synchronous code. See
+"Synchronous code & Threads" below for a full explanation. By default,
+``sync_to_async`` will run all synchronous code in the program in the same
+thread for safety reasons; you can disable this for more performance with
+``@sync_to_async(thread_sensitive=False)``, but make sure that your code does
+not rely on anything bound to threads (like database connections) when you do.
+
+
+Threadlocal replacement
+-----------------------
+
+This is a drop-in replacement for ``threading.local`` that works with both
+threads and asyncio Tasks. Even better, it will proxy values through from a
+task-local context to a thread-local context when you use ``sync_to_async``
+to run things in a threadpool, and vice-versa for ``async_to_sync``.
+
+If you instead want true thread- and task-safety, you can set
+``thread_critical`` on the Local object to ensure this instead.
+
+
+Server base classes
+-------------------
+
+Includes a ``StatelessServer`` class which provides all the hard work of
+writing a stateless server (as in, does not handle direct incoming sockets
+but instead consumes external streams or sockets to work out what is happening).
+
+An example of such a server would be a chatbot server that connects out to
+a central chat server and provides a "connection scope" per user chatting to
+it. There's only one actual connection, but the server has to separate things
+into several scopes for easier writing of the code.
+
+You can see an example of this being used in `frequensgi `_.
+
+
+WSGI-to-ASGI adapter
+--------------------
+
+Allows you to wrap a WSGI application so it appears as a valid ASGI application.
+
+Simply wrap it around your WSGI application like so::
+
+ asgi_application = WsgiToAsgi(wsgi_application)
+
+The WSGI application will be run in a synchronous threadpool, and the wrapped
+ASGI application will be one that accepts ``http`` class messages.
+
+Please note that not all extended features of WSGI may be supported (such as
+file handles for incoming POST bodies).
+
+
+Dependencies
+------------
+
+``asgiref`` requires Python 3.9 or higher.
+
+
+Contributing
+------------
+
+Please refer to the
+`main Channels contributing docs `_.
+
+
+Testing
+'''''''
+
+To run tests, make sure you have installed the ``tests`` extra with the package::
+
+ cd asgiref/
+ pip install -e .[tests]
+ pytest
+
+
+Building the documentation
+''''''''''''''''''''''''''
+
+The documentation uses `Sphinx `_::
+
+ cd asgiref/docs/
+ pip install sphinx
+
+To build the docs, you can use the default tools::
+
+ sphinx-build -b html . _build/html # or `make html`, if you've got make set up
+ cd _build/html
+ python -m http.server
+
+...or you can use ``sphinx-autobuild`` to run a server and rebuild/reload
+your documentation changes automatically::
+
+ pip install sphinx-autobuild
+ sphinx-autobuild . _build/html
+
+
+Releasing
+'''''''''
+
+To release, first add details to CHANGELOG.txt and update the version number in ``asgiref/__init__.py``.
+
+Then, build and push the packages::
+
+ python -m build
+ twine upload dist/*
+ rm -r asgiref.egg-info dist
+
+
+Implementation Details
+----------------------
+
+Synchronous code & threads
+''''''''''''''''''''''''''
+
+The ``asgiref.sync`` module provides two wrappers that let you go between
+asynchronous and synchronous code at will, while taking care of the rough edges
+for you.
+
+Unfortunately, the rough edges are numerous, and the code has to work especially
+hard to keep things in the same thread as much as possible. Notably, the
+restrictions we are working with are:
+
+* All synchronous code called through ``SyncToAsync`` and marked with
+ ``thread_sensitive`` should run in the same thread as each other (and if the
+ outer layer of the program is synchronous, the main thread)
+
+* If a thread already has a running async loop, ``AsyncToSync`` can't run things
+ on that loop if it's blocked on synchronous code that is above you in the
+ call stack.
+
+The first compromise you get to might be that ``thread_sensitive`` code should
+just run in the same thread and not spawn in a sub-thread, fulfilling the first
+restriction, but that immediately runs you into the second restriction.
+
+The only real solution is to essentially have a variant of ThreadPoolExecutor
+that executes any ``thread_sensitive`` code on the outermost synchronous
+thread - either the main thread, or a single spawned subthread.
+
+This means you now have two basic states:
+
+* If the outermost layer of your program is synchronous, then all async code
+ run through ``AsyncToSync`` will run in a per-call event loop in arbitrary
+ sub-threads, while all ``thread_sensitive`` code will run in the main thread.
+
+* If the outermost layer of your program is asynchronous, then all async code
+ runs on the main thread's event loop, and all ``thread_sensitive`` synchronous
+ code will run in a single shared sub-thread.
+
+Crucially, this means that in both cases there is a thread which is a shared
+resource that all ``thread_sensitive`` code must run on, and there is a chance
+that this thread is currently blocked on its own ``AsyncToSync`` call. Thus,
+``AsyncToSync`` needs to act as an executor for thread code while it's blocking.
+
+The ``CurrentThreadExecutor`` class provides this functionality; rather than
+simply waiting on a Future, you can call its ``run_until_future`` method and
+it will run submitted code until that Future is done. This means that code
+inside the call can then run code on your thread.
+
+
+Maintenance and Security
+------------------------
+
+To report security issues, please contact security@djangoproject.com. For GPG
+signatures and more security process information, see
+https://docs.djangoproject.com/en/dev/internals/security/.
+
+To report bugs or request new features, please open a new GitHub issue.
+
+This repository is part of the Channels project. For the shepherd and maintenance team, please see the
+`main Channels readme `_.
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/RECORD b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/RECORD
new file mode 100644
index 00000000..15dc8fe7
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/RECORD
@@ -0,0 +1,27 @@
+asgiref-3.11.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+asgiref-3.11.0.dist-info/METADATA,sha256=gV4IrytPfzCXgnDhv_rM5GBoUUd_Tz-QvqZSFKEmVGs,9287
+asgiref-3.11.0.dist-info/RECORD,,
+asgiref-3.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
+asgiref-3.11.0.dist-info/licenses/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552
+asgiref-3.11.0.dist-info/top_level.txt,sha256=bokQjCzwwERhdBiPdvYEZa4cHxT4NCeAffQNUqJ8ssg,8
+asgiref/__init__.py,sha256=cpptu6yAKjujkKCECVRXYkw3SmUpyBiTvJvB3Mmcu5s,23
+asgiref/__pycache__/__init__.cpython-311.pyc,,
+asgiref/__pycache__/compatibility.cpython-311.pyc,,
+asgiref/__pycache__/current_thread_executor.cpython-311.pyc,,
+asgiref/__pycache__/local.cpython-311.pyc,,
+asgiref/__pycache__/server.cpython-311.pyc,,
+asgiref/__pycache__/sync.cpython-311.pyc,,
+asgiref/__pycache__/testing.cpython-311.pyc,,
+asgiref/__pycache__/timeout.cpython-311.pyc,,
+asgiref/__pycache__/typing.cpython-311.pyc,,
+asgiref/__pycache__/wsgi.cpython-311.pyc,,
+asgiref/compatibility.py,sha256=DhY1SOpOvOw0Y1lSEjCqg-znRUQKecG3LTaV48MZi68,1606
+asgiref/current_thread_executor.py,sha256=42CU1VODLTk-_PYise-cP1XgyAvI5Djc8f97owFzdrs,4157
+asgiref/local.py,sha256=ZZeWWIXptVU4GbNApMMWQ-skuglvodcQA5WpzJDMxh4,4912
+asgiref/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+asgiref/server.py,sha256=3A68169Nuh2sTY_2O5JzRd_opKObWvvrEFcrXssq3kA,6311
+asgiref/sync.py,sha256=kYfWtf4CI438zIw85kX9YQx0y64B1N6AM0PcRGf01M4,22927
+asgiref/testing.py,sha256=U5wcs_-ZYTO5SIGfl80EqRAGv_T8BHrAhvAKRuuztT4,4421
+asgiref/timeout.py,sha256=LtGL-xQpG8JHprdsEUCMErJ0kNWj4qwWZhEHJ3iKu4s,3627
+asgiref/typing.py,sha256=Zi72AZlOyF1C7N14LLZnpAdfUH4ljoBqFdQo_bBKMq0,6290
+asgiref/wsgi.py,sha256=J8OAgirfsYHZmxxqIGfFiZ43uq1qKKv2xGMkRISNIo4,6742
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/WHEEL b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/WHEEL
new file mode 100644
index 00000000..e7fa31b6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/WHEEL
@@ -0,0 +1,5 @@
+Wheel-Version: 1.0
+Generator: setuptools (80.9.0)
+Root-Is-Purelib: true
+Tag: py3-none-any
+
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/licenses/LICENSE b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/licenses/LICENSE
new file mode 100644
index 00000000..5f4f225d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/licenses/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Django Software Foundation and individual 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:
+
+ 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 Django 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/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/top_level.txt b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/top_level.txt
new file mode 100644
index 00000000..ddf99d3d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref-3.11.0.dist-info/top_level.txt
@@ -0,0 +1 @@
+asgiref
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__init__.py b/backend/.venv/lib/python3.11/site-packages/asgiref/__init__.py
new file mode 100644
index 00000000..fcbd6954
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/__init__.py
@@ -0,0 +1 @@
+__version__ = "3.11.0"
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..e77aa872
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/compatibility.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/compatibility.cpython-311.pyc
new file mode 100644
index 00000000..bfc44a0c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/compatibility.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/current_thread_executor.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/current_thread_executor.cpython-311.pyc
new file mode 100644
index 00000000..9a23ecb5
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/current_thread_executor.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/local.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/local.cpython-311.pyc
new file mode 100644
index 00000000..4004ca95
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/local.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/server.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/server.cpython-311.pyc
new file mode 100644
index 00000000..b2f639d5
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/server.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/sync.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/sync.cpython-311.pyc
new file mode 100644
index 00000000..c9be1768
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/sync.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/testing.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/testing.cpython-311.pyc
new file mode 100644
index 00000000..9bb9037c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/testing.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/timeout.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/timeout.cpython-311.pyc
new file mode 100644
index 00000000..8731e0dd
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/timeout.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/typing.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/typing.cpython-311.pyc
new file mode 100644
index 00000000..b00963d0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/typing.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/wsgi.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/wsgi.cpython-311.pyc
new file mode 100644
index 00000000..d89a7510
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/asgiref/__pycache__/wsgi.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/compatibility.py b/backend/.venv/lib/python3.11/site-packages/asgiref/compatibility.py
new file mode 100644
index 00000000..3a2a63e6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/compatibility.py
@@ -0,0 +1,48 @@
+import inspect
+
+from .sync import iscoroutinefunction
+
+
+def is_double_callable(application):
+ """
+ Tests to see if an application is a legacy-style (double-callable) application.
+ """
+ # Look for a hint on the object first
+ if getattr(application, "_asgi_single_callable", False):
+ return False
+ if getattr(application, "_asgi_double_callable", False):
+ return True
+ # Uninstanted classes are double-callable
+ if inspect.isclass(application):
+ return True
+ # Instanted classes depend on their __call__
+ if hasattr(application, "__call__"):
+ # We only check to see if its __call__ is a coroutine function -
+ # if it's not, it still might be a coroutine function itself.
+ if iscoroutinefunction(application.__call__):
+ return False
+ # Non-classes we just check directly
+ return not iscoroutinefunction(application)
+
+
+def double_to_single_callable(application):
+ """
+ Transforms a double-callable ASGI application into a single-callable one.
+ """
+
+ async def new_application(scope, receive, send):
+ instance = application(scope)
+ return await instance(receive, send)
+
+ return new_application
+
+
+def guarantee_single_callable(application):
+ """
+ Takes either a single- or double-callable application and always returns it
+ in single-callable style. Use this to add backwards compatibility for ASGI
+ 2.0 applications to your server/test harness/etc.
+ """
+ if is_double_callable(application):
+ application = double_to_single_callable(application)
+ return application
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/current_thread_executor.py b/backend/.venv/lib/python3.11/site-packages/asgiref/current_thread_executor.py
new file mode 100644
index 00000000..6293cbd7
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/current_thread_executor.py
@@ -0,0 +1,123 @@
+import sys
+import threading
+from collections import deque
+from concurrent.futures import Executor, Future
+from typing import Any, Callable, TypeVar
+
+if sys.version_info >= (3, 10):
+ from typing import ParamSpec
+else:
+ from typing_extensions import ParamSpec
+
+_T = TypeVar("_T")
+_P = ParamSpec("_P")
+_R = TypeVar("_R")
+
+
+class _WorkItem:
+ """
+ Represents an item needing to be run in the executor.
+ Copied from ThreadPoolExecutor (but it's private, so we're not going to rely on importing it)
+ """
+
+ def __init__(
+ self,
+ future: "Future[_R]",
+ fn: Callable[_P, _R],
+ *args: _P.args,
+ **kwargs: _P.kwargs,
+ ):
+ self.future = future
+ self.fn = fn
+ self.args = args
+ self.kwargs = kwargs
+
+ def run(self) -> None:
+ __traceback_hide__ = True # noqa: F841
+ if not self.future.set_running_or_notify_cancel():
+ return
+ try:
+ result = self.fn(*self.args, **self.kwargs)
+ except BaseException as exc:
+ self.future.set_exception(exc)
+ # Break a reference cycle with the exception 'exc'
+ self = None # type: ignore[assignment]
+ else:
+ self.future.set_result(result)
+
+
+class CurrentThreadExecutor(Executor):
+ """
+ An Executor that actually runs code in the thread it is instantiated in.
+ Passed to other threads running async code, so they can run sync code in
+ the thread they came from.
+ """
+
+ def __init__(self, old_executor: "CurrentThreadExecutor | None") -> None:
+ self._work_thread = threading.current_thread()
+ self._work_ready = threading.Condition(threading.Lock())
+ self._work_items = deque[_WorkItem]() # synchronized by _work_ready
+ self._broken = False # synchronized by _work_ready
+ self._old_executor = old_executor
+
+ def run_until_future(self, future: "Future[Any]") -> None:
+ """
+ Runs the code in the work queue until a result is available from the future.
+ Should be run from the thread the executor is initialised in.
+ """
+ # Check we're in the right thread
+ if threading.current_thread() != self._work_thread:
+ raise RuntimeError(
+ "You cannot run CurrentThreadExecutor from a different thread"
+ )
+
+ def done(future: "Future[Any]") -> None:
+ with self._work_ready:
+ self._broken = True
+ self._work_ready.notify()
+
+ future.add_done_callback(done)
+ # Keep getting and running work items until the future we're waiting for
+ # is done and the queue is empty.
+ while True:
+ with self._work_ready:
+ while not self._work_items and not self._broken:
+ self._work_ready.wait()
+ if not self._work_items:
+ break
+ # Get a work item and run it
+ work_item = self._work_items.popleft()
+ work_item.run()
+ del work_item
+
+ def submit(
+ self,
+ fn: Callable[_P, _R],
+ /,
+ *args: _P.args,
+ **kwargs: _P.kwargs,
+ ) -> "Future[_R]":
+ # Check they're not submitting from the same thread
+ if threading.current_thread() == self._work_thread:
+ raise RuntimeError(
+ "You cannot submit onto CurrentThreadExecutor from its own thread"
+ )
+ f: "Future[_R]" = Future()
+ work_item = _WorkItem(f, fn, *args, **kwargs)
+
+ # Walk up the CurrentThreadExecutor stack to find the closest one still
+ # running
+ executor = self
+ while True:
+ with executor._work_ready:
+ if not executor._broken:
+ # Add to work queue
+ executor._work_items.append(work_item)
+ executor._work_ready.notify()
+ break
+ if executor._old_executor is None:
+ raise RuntimeError("CurrentThreadExecutor already quit or is broken")
+ executor = executor._old_executor
+
+ # Return the future
+ return f
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/local.py b/backend/.venv/lib/python3.11/site-packages/asgiref/local.py
new file mode 100644
index 00000000..845313a8
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/local.py
@@ -0,0 +1,131 @@
+import asyncio
+import contextlib
+import contextvars
+import threading
+from typing import Any, Dict, Union
+
+
+class _CVar:
+ """Storage utility for Local."""
+
+ def __init__(self) -> None:
+ self._data: "contextvars.ContextVar[Dict[str, Any]]" = contextvars.ContextVar(
+ "asgiref.local"
+ )
+
+ def __getattr__(self, key):
+ storage_object = self._data.get({})
+ try:
+ return storage_object[key]
+ except KeyError:
+ raise AttributeError(f"{self!r} object has no attribute {key!r}")
+
+ def __setattr__(self, key: str, value: Any) -> None:
+ if key == "_data":
+ return super().__setattr__(key, value)
+
+ storage_object = self._data.get({}).copy()
+ storage_object[key] = value
+ self._data.set(storage_object)
+
+ def __delattr__(self, key: str) -> None:
+ storage_object = self._data.get({}).copy()
+ if key in storage_object:
+ del storage_object[key]
+ self._data.set(storage_object)
+ else:
+ raise AttributeError(f"{self!r} object has no attribute {key!r}")
+
+
+class Local:
+ """Local storage for async tasks.
+
+ This is a namespace object (similar to `threading.local`) where data is
+ also local to the current async task (if there is one).
+
+ In async threads, local means in the same sense as the `contextvars`
+ module - i.e. a value set in an async frame will be visible:
+
+ - to other async code `await`-ed from this frame.
+ - to tasks spawned using `asyncio` utilities (`create_task`, `wait_for`,
+ `gather` and probably others).
+ - to code scheduled in a sync thread using `sync_to_async`
+
+ In "sync" threads (a thread with no async event loop running), the
+ data is thread-local, but additionally shared with async code executed
+ via the `async_to_sync` utility, which schedules async code in a new thread
+ and copies context across to that thread.
+
+ If `thread_critical` is True, then the local will only be visible per-thread,
+ behaving exactly like `threading.local` if the thread is sync, and as
+ `contextvars` if the thread is async. This allows genuinely thread-sensitive
+ code (such as DB handles) to be kept stricly to their initial thread and
+ disable the sharing across `sync_to_async` and `async_to_sync` wrapped calls.
+
+ Unlike plain `contextvars` objects, this utility is threadsafe.
+ """
+
+ def __init__(self, thread_critical: bool = False) -> None:
+ self._thread_critical = thread_critical
+ self._thread_lock = threading.RLock()
+
+ self._storage: "Union[threading.local, _CVar]"
+
+ if thread_critical:
+ # Thread-local storage
+ self._storage = threading.local()
+ else:
+ # Contextvar storage
+ self._storage = _CVar()
+
+ @contextlib.contextmanager
+ def _lock_storage(self):
+ # Thread safe access to storage
+ if self._thread_critical:
+ is_async = True
+ try:
+ # this is a test for are we in a async or sync
+ # thread - will raise RuntimeError if there is
+ # no current loop
+ asyncio.get_running_loop()
+ except RuntimeError:
+ is_async = False
+ if not is_async:
+ # We are in a sync thread, the storage is
+ # just the plain thread local (i.e, "global within
+ # this thread" - it doesn't matter where you are
+ # in a call stack you see the same storage)
+ yield self._storage
+ else:
+ # We are in an async thread - storage is still
+ # local to this thread, but additionally should
+ # behave like a context var (is only visible with
+ # the same async call stack)
+
+ # Ensure context exists in the current thread
+ if not hasattr(self._storage, "cvar"):
+ self._storage.cvar = _CVar()
+
+ # self._storage is a thread local, so the members
+ # can't be accessed in another thread (we don't
+ # need any locks)
+ yield self._storage.cvar
+ else:
+ # Lock for thread_critical=False as other threads
+ # can access the exact same storage object
+ with self._thread_lock:
+ yield self._storage
+
+ def __getattr__(self, key):
+ with self._lock_storage() as storage:
+ return getattr(storage, key)
+
+ def __setattr__(self, key, value):
+ if key in ("_local", "_storage", "_thread_critical", "_thread_lock"):
+ return super().__setattr__(key, value)
+ with self._lock_storage() as storage:
+ setattr(storage, key, value)
+
+ def __delattr__(self, key):
+ with self._lock_storage() as storage:
+ delattr(storage, key)
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/py.typed b/backend/.venv/lib/python3.11/site-packages/asgiref/py.typed
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/server.py b/backend/.venv/lib/python3.11/site-packages/asgiref/server.py
new file mode 100644
index 00000000..131ea430
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/server.py
@@ -0,0 +1,173 @@
+import asyncio
+import logging
+import time
+import traceback
+
+from .compatibility import guarantee_single_callable
+
+logger = logging.getLogger(__name__)
+
+
+class StatelessServer:
+ """
+ Base server class that handles basic concepts like application instance
+ creation/pooling, exception handling, and similar, for stateless protocols
+ (i.e. ones without actual incoming connections to the process)
+
+ Your code should override the handle() method, doing whatever it needs to,
+ and calling get_or_create_application_instance with a unique `scope_id`
+ and `scope` for the scope it wants to get.
+
+ If an application instance is found with the same `scope_id`, you are
+ given its input queue, otherwise one is made for you with the scope provided
+ and you are given that fresh new input queue. Either way, you should do
+ something like:
+
+ input_queue = self.get_or_create_application_instance(
+ "user-123456",
+ {"type": "testprotocol", "user_id": "123456", "username": "andrew"},
+ )
+ input_queue.put_nowait(message)
+
+ If you try and create an application instance and there are already
+ `max_application` instances, the oldest/least recently used one will be
+ reclaimed and shut down to make space.
+
+ Application coroutines that error will be found periodically (every 100ms
+ by default) and have their exceptions printed to the console. Override
+ application_exception() if you want to do more when this happens.
+
+ If you override run(), make sure you handle things like launching the
+ application checker.
+ """
+
+ application_checker_interval = 0.1
+
+ def __init__(self, application, max_applications=1000):
+ # Parameters
+ self.application = application
+ self.max_applications = max_applications
+ # Initialisation
+ self.application_instances = {}
+
+ ### Mainloop and handling
+
+ def run(self):
+ """
+ Runs the asyncio event loop with our handler loop.
+ """
+ event_loop = asyncio.get_event_loop()
+ try:
+ event_loop.run_until_complete(self.arun())
+ except KeyboardInterrupt:
+ logger.info("Exiting due to Ctrl-C/interrupt")
+
+ async def arun(self):
+ """
+ Runs the asyncio event loop with our handler loop.
+ """
+
+ class Done(Exception):
+ pass
+
+ async def handle():
+ await self.handle()
+ raise Done
+
+ try:
+ await asyncio.gather(self.application_checker(), handle())
+ except Done:
+ pass
+
+ async def handle(self):
+ raise NotImplementedError("You must implement handle()")
+
+ async def application_send(self, scope, message):
+ """
+ Receives outbound sends from applications and handles them.
+ """
+ raise NotImplementedError("You must implement application_send()")
+
+ ### Application instance management
+
+ def get_or_create_application_instance(self, scope_id, scope):
+ """
+ Creates an application instance and returns its queue.
+ """
+ if scope_id in self.application_instances:
+ self.application_instances[scope_id]["last_used"] = time.time()
+ return self.application_instances[scope_id]["input_queue"]
+ # See if we need to delete an old one
+ while len(self.application_instances) > self.max_applications:
+ self.delete_oldest_application_instance()
+ # Make an instance of the application
+ input_queue = asyncio.Queue()
+ application_instance = guarantee_single_callable(self.application)
+ # Run it, and stash the future for later checking
+ future = asyncio.ensure_future(
+ application_instance(
+ scope=scope,
+ receive=input_queue.get,
+ send=lambda message: self.application_send(scope, message),
+ ),
+ )
+ self.application_instances[scope_id] = {
+ "input_queue": input_queue,
+ "future": future,
+ "scope": scope,
+ "last_used": time.time(),
+ }
+ return input_queue
+
+ def delete_oldest_application_instance(self):
+ """
+ Finds and deletes the oldest application instance
+ """
+ oldest_time = min(
+ details["last_used"] for details in self.application_instances.values()
+ )
+ for scope_id, details in self.application_instances.items():
+ if details["last_used"] == oldest_time:
+ self.delete_application_instance(scope_id)
+ # Return to make sure we only delete one in case two have
+ # the same oldest time
+ return
+
+ def delete_application_instance(self, scope_id):
+ """
+ Removes an application instance (makes sure its task is stopped,
+ then removes it from the current set)
+ """
+ details = self.application_instances[scope_id]
+ del self.application_instances[scope_id]
+ if not details["future"].done():
+ details["future"].cancel()
+
+ async def application_checker(self):
+ """
+ Goes through the set of current application instance Futures and cleans up
+ any that are done/prints exceptions for any that errored.
+ """
+ while True:
+ await asyncio.sleep(self.application_checker_interval)
+ for scope_id, details in list(self.application_instances.items()):
+ if details["future"].done():
+ exception = details["future"].exception()
+ if exception:
+ await self.application_exception(exception, details)
+ try:
+ del self.application_instances[scope_id]
+ except KeyError:
+ # Exception handling might have already got here before us. That's fine.
+ pass
+
+ async def application_exception(self, exception, application_details):
+ """
+ Called whenever an application coroutine has an exception.
+ """
+ logging.error(
+ "Exception inside application: %s\n%s%s",
+ exception,
+ "".join(traceback.format_tb(exception.__traceback__)),
+ f" {exception}",
+ )
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/sync.py b/backend/.venv/lib/python3.11/site-packages/asgiref/sync.py
new file mode 100644
index 00000000..54e417d3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/sync.py
@@ -0,0 +1,655 @@
+import asyncio
+import asyncio.coroutines
+import contextvars
+import functools
+import inspect
+import os
+import sys
+import threading
+import warnings
+import weakref
+from concurrent.futures import Future, ThreadPoolExecutor
+from typing import (
+ TYPE_CHECKING,
+ Any,
+ Awaitable,
+ Callable,
+ Coroutine,
+ Dict,
+ Generic,
+ List,
+ Optional,
+ TypeVar,
+ Union,
+ overload,
+)
+
+from .current_thread_executor import CurrentThreadExecutor
+from .local import Local
+
+if sys.version_info >= (3, 10):
+ from typing import ParamSpec
+else:
+ from typing_extensions import ParamSpec
+
+if TYPE_CHECKING:
+ # This is not available to import at runtime
+ from _typeshed import OptExcInfo
+
+_F = TypeVar("_F", bound=Callable[..., Any])
+_P = ParamSpec("_P")
+_R = TypeVar("_R")
+
+
+def _restore_context(context: contextvars.Context) -> None:
+ # Check for changes in contextvars, and set them to the current
+ # context for downstream consumers
+ for cvar in context:
+ cvalue = context.get(cvar)
+ try:
+ if cvar.get() != cvalue:
+ cvar.set(cvalue)
+ except LookupError:
+ cvar.set(cvalue)
+
+
+# Python 3.12 deprecates asyncio.iscoroutinefunction() as an alias for
+# inspect.iscoroutinefunction(), whilst also removing the _is_coroutine marker.
+# The latter is replaced with the inspect.markcoroutinefunction decorator.
+# Until 3.12 is the minimum supported Python version, provide a shim.
+
+if hasattr(inspect, "markcoroutinefunction"):
+ iscoroutinefunction = inspect.iscoroutinefunction
+ markcoroutinefunction: Callable[[_F], _F] = inspect.markcoroutinefunction
+else:
+ iscoroutinefunction = asyncio.iscoroutinefunction # type: ignore[assignment]
+
+ def markcoroutinefunction(func: _F) -> _F:
+ func._is_coroutine = asyncio.coroutines._is_coroutine # type: ignore
+ return func
+
+
+class AsyncSingleThreadContext:
+ """Context manager to run async code inside the same thread.
+
+ Normally, AsyncToSync functions run either inside a separate ThreadPoolExecutor or
+ the main event loop if it exists. This context manager ensures that all AsyncToSync
+ functions execute within the same thread.
+
+ This context manager is re-entrant, so only the outer-most call to
+ AsyncSingleThreadContext will set the context.
+
+ Usage:
+
+ >>> import asyncio
+ >>> with AsyncSingleThreadContext():
+ ... async_to_sync(asyncio.sleep(1))()
+ """
+
+ def __init__(self):
+ self.token = None
+
+ def __enter__(self):
+ try:
+ AsyncToSync.async_single_thread_context.get()
+ except LookupError:
+ self.token = AsyncToSync.async_single_thread_context.set(self)
+
+ return self
+
+ def __exit__(self, exc, value, tb):
+ if not self.token:
+ return
+
+ executor = AsyncToSync.context_to_thread_executor.pop(self, None)
+ if executor:
+ executor.shutdown()
+
+ AsyncToSync.async_single_thread_context.reset(self.token)
+
+
+class ThreadSensitiveContext:
+ """Async context manager to manage context for thread sensitive mode
+
+ This context manager controls which thread pool executor is used when in
+ thread sensitive mode. By default, a single thread pool executor is shared
+ within a process.
+
+ The ThreadSensitiveContext() context manager may be used to specify a
+ thread pool per context.
+
+ This context manager is re-entrant, so only the outer-most call to
+ ThreadSensitiveContext will set the context.
+
+ Usage:
+
+ >>> import time
+ >>> async with ThreadSensitiveContext():
+ ... await sync_to_async(time.sleep, 1)()
+ """
+
+ def __init__(self):
+ self.token = None
+
+ async def __aenter__(self):
+ try:
+ SyncToAsync.thread_sensitive_context.get()
+ except LookupError:
+ self.token = SyncToAsync.thread_sensitive_context.set(self)
+
+ return self
+
+ async def __aexit__(self, exc, value, tb):
+ if not self.token:
+ return
+
+ executor = SyncToAsync.context_to_thread_executor.pop(self, None)
+ if executor:
+ executor.shutdown()
+ SyncToAsync.thread_sensitive_context.reset(self.token)
+
+
+class AsyncToSync(Generic[_P, _R]):
+ """
+ Utility class which turns an awaitable that only works on the thread with
+ the event loop into a synchronous callable that works in a subthread.
+
+ If the call stack contains an async loop, the code runs there.
+ Otherwise, the code runs in a new loop in a new thread.
+
+ Either way, this thread then pauses and waits to run any thread_sensitive
+ code called from further down the call stack using SyncToAsync, before
+ finally exiting once the async task returns.
+ """
+
+ # Keeps a reference to the CurrentThreadExecutor in local context, so that
+ # any sync_to_async inside the wrapped code can find it.
+ executors: "Local" = Local()
+
+ # When we can't find a CurrentThreadExecutor from the context, such as
+ # inside create_task, we'll look it up here from the running event loop.
+ loop_thread_executors: "Dict[asyncio.AbstractEventLoop, CurrentThreadExecutor]" = {}
+
+ async_single_thread_context: "contextvars.ContextVar[AsyncSingleThreadContext]" = (
+ contextvars.ContextVar("async_single_thread_context")
+ )
+
+ context_to_thread_executor: "weakref.WeakKeyDictionary[AsyncSingleThreadContext, ThreadPoolExecutor]" = (
+ weakref.WeakKeyDictionary()
+ )
+
+ def __init__(
+ self,
+ awaitable: Union[
+ Callable[_P, Coroutine[Any, Any, _R]],
+ Callable[_P, Awaitable[_R]],
+ ],
+ force_new_loop: bool = False,
+ ):
+ if not callable(awaitable) or (
+ not iscoroutinefunction(awaitable)
+ and not iscoroutinefunction(getattr(awaitable, "__call__", awaitable))
+ ):
+ # Python does not have very reliable detection of async functions
+ # (lots of false negatives) so this is just a warning.
+ warnings.warn(
+ "async_to_sync was passed a non-async-marked callable", stacklevel=2
+ )
+ self.awaitable = awaitable
+ try:
+ self.__self__ = self.awaitable.__self__ # type: ignore[union-attr]
+ except AttributeError:
+ pass
+ self.force_new_loop = force_new_loop
+ self.main_event_loop = None
+ try:
+ self.main_event_loop = asyncio.get_running_loop()
+ except RuntimeError:
+ # There's no event loop in this thread.
+ pass
+
+ def __call__(self, *args: _P.args, **kwargs: _P.kwargs) -> _R:
+ __traceback_hide__ = True # noqa: F841
+
+ if not self.force_new_loop and not self.main_event_loop:
+ # There's no event loop in this thread. Look for the threadlocal if
+ # we're inside SyncToAsync
+ main_event_loop_pid = getattr(
+ SyncToAsync.threadlocal, "main_event_loop_pid", None
+ )
+ # We make sure the parent loop is from the same process - if
+ # they've forked, this is not going to be valid any more (#194)
+ if main_event_loop_pid and main_event_loop_pid == os.getpid():
+ self.main_event_loop = getattr(
+ SyncToAsync.threadlocal, "main_event_loop", None
+ )
+
+ # You can't call AsyncToSync from a thread with a running event loop
+ try:
+ asyncio.get_running_loop()
+ except RuntimeError:
+ pass
+ else:
+ raise RuntimeError(
+ "You cannot use AsyncToSync in the same thread as an async event loop - "
+ "just await the async function directly."
+ )
+
+ # Make a future for the return information
+ call_result: "Future[_R]" = Future()
+
+ # Make a CurrentThreadExecutor we'll use to idle in this thread - we
+ # need one for every sync frame, even if there's one above us in the
+ # same thread.
+ old_executor = getattr(self.executors, "current", None)
+ current_executor = CurrentThreadExecutor(old_executor)
+ self.executors.current = current_executor
+
+ # Wrapping context in list so it can be reassigned from within
+ # `main_wrap`.
+ context = [contextvars.copy_context()]
+
+ # Get task context so that parent task knows which task to propagate
+ # an asyncio.CancelledError to.
+ task_context = getattr(SyncToAsync.threadlocal, "task_context", None)
+
+ # Use call_soon_threadsafe to schedule a synchronous callback on the
+ # main event loop's thread if it's there, otherwise make a new loop
+ # in this thread.
+ try:
+ awaitable = self.main_wrap(
+ call_result,
+ sys.exc_info(),
+ task_context,
+ context,
+ # prepare an awaitable which can be passed as is to self.main_wrap,
+ # so that `args` and `kwargs` don't need to be
+ # destructured when passed to self.main_wrap
+ # (which is required by `ParamSpec`)
+ # as that may cause overlapping arguments
+ self.awaitable(*args, **kwargs),
+ )
+
+ async def new_loop_wrap() -> None:
+ loop = asyncio.get_running_loop()
+ self.loop_thread_executors[loop] = current_executor
+ try:
+ await awaitable
+ finally:
+ del self.loop_thread_executors[loop]
+
+ if self.main_event_loop is not None:
+ try:
+ self.main_event_loop.call_soon_threadsafe(
+ self.main_event_loop.create_task, awaitable
+ )
+ except RuntimeError:
+ running_in_main_event_loop = False
+ else:
+ running_in_main_event_loop = True
+ # Run the CurrentThreadExecutor until the future is done.
+ current_executor.run_until_future(call_result)
+ else:
+ running_in_main_event_loop = False
+
+ if not running_in_main_event_loop:
+ loop_executor = None
+
+ if self.async_single_thread_context.get(None):
+ single_thread_context = self.async_single_thread_context.get()
+
+ if single_thread_context in self.context_to_thread_executor:
+ loop_executor = self.context_to_thread_executor[
+ single_thread_context
+ ]
+ else:
+ loop_executor = ThreadPoolExecutor(max_workers=1)
+ self.context_to_thread_executor[
+ single_thread_context
+ ] = loop_executor
+ else:
+ # Make our own event loop - in a new thread - and run inside that.
+ loop_executor = ThreadPoolExecutor(max_workers=1)
+
+ loop_future = loop_executor.submit(asyncio.run, new_loop_wrap())
+ # Run the CurrentThreadExecutor until the future is done.
+ current_executor.run_until_future(loop_future)
+ # Wait for future and/or allow for exception propagation
+ loop_future.result()
+ finally:
+ _restore_context(context[0])
+ # Restore old current thread executor state
+ self.executors.current = old_executor
+
+ # Wait for results from the future.
+ return call_result.result()
+
+ def __get__(self, parent: Any, objtype: Any) -> Callable[_P, _R]:
+ """
+ Include self for methods
+ """
+ func = functools.partial(self.__call__, parent)
+ return functools.update_wrapper(func, self.awaitable)
+
+ async def main_wrap(
+ self,
+ call_result: "Future[_R]",
+ exc_info: "OptExcInfo",
+ task_context: "Optional[List[asyncio.Task[Any]]]",
+ context: List[contextvars.Context],
+ awaitable: Union[Coroutine[Any, Any, _R], Awaitable[_R]],
+ ) -> None:
+ """
+ Wraps the awaitable with something that puts the result into the
+ result/exception future.
+ """
+
+ __traceback_hide__ = True # noqa: F841
+
+ if context is not None:
+ _restore_context(context[0])
+
+ current_task = asyncio.current_task()
+ if current_task is not None and task_context is not None:
+ task_context.append(current_task)
+
+ try:
+ # If we have an exception, run the function inside the except block
+ # after raising it so exc_info is correctly populated.
+ if exc_info[1]:
+ try:
+ raise exc_info[1]
+ except BaseException:
+ result = await awaitable
+ else:
+ result = await awaitable
+ except BaseException as e:
+ call_result.set_exception(e)
+ else:
+ call_result.set_result(result)
+ finally:
+ if current_task is not None and task_context is not None:
+ task_context.remove(current_task)
+ context[0] = contextvars.copy_context()
+
+
+class SyncToAsync(Generic[_P, _R]):
+ """
+ Utility class which turns a synchronous callable into an awaitable that
+ runs in a threadpool. It also sets a threadlocal inside the thread so
+ calls to AsyncToSync can escape it.
+
+ If thread_sensitive is passed, the code will run in the same thread as any
+ outer code. This is needed for underlying Python code that is not
+ threadsafe (for example, code which handles SQLite database connections).
+
+ If the outermost program is async (i.e. SyncToAsync is outermost), then
+ this will be a dedicated single sub-thread that all sync code runs in,
+ one after the other. If the outermost program is sync (i.e. AsyncToSync is
+ outermost), this will just be the main thread. This is achieved by idling
+ with a CurrentThreadExecutor while AsyncToSync is blocking its sync parent,
+ rather than just blocking.
+
+ If executor is passed in, that will be used instead of the loop's default executor.
+ In order to pass in an executor, thread_sensitive must be set to False, otherwise
+ a TypeError will be raised.
+ """
+
+ # Storage for main event loop references
+ threadlocal = threading.local()
+
+ # Single-thread executor for thread-sensitive code
+ single_thread_executor = ThreadPoolExecutor(max_workers=1)
+
+ # Maintain a contextvar for the current execution context. Optionally used
+ # for thread sensitive mode.
+ thread_sensitive_context: "contextvars.ContextVar[ThreadSensitiveContext]" = (
+ contextvars.ContextVar("thread_sensitive_context")
+ )
+
+ # Contextvar that is used to detect if the single thread executor
+ # would be awaited on while already being used in the same context
+ deadlock_context: "contextvars.ContextVar[bool]" = contextvars.ContextVar(
+ "deadlock_context"
+ )
+
+ # Maintaining a weak reference to the context ensures that thread pools are
+ # erased once the context goes out of scope. This terminates the thread pool.
+ context_to_thread_executor: "weakref.WeakKeyDictionary[ThreadSensitiveContext, ThreadPoolExecutor]" = (
+ weakref.WeakKeyDictionary()
+ )
+
+ def __init__(
+ self,
+ func: Callable[_P, _R],
+ thread_sensitive: bool = True,
+ executor: Optional["ThreadPoolExecutor"] = None,
+ context: Optional[contextvars.Context] = None,
+ ) -> None:
+ if (
+ not callable(func)
+ or iscoroutinefunction(func)
+ or iscoroutinefunction(getattr(func, "__call__", func))
+ ):
+ raise TypeError("sync_to_async can only be applied to sync functions.")
+ self.func = func
+ self.context = context
+ functools.update_wrapper(self, func)
+ self._thread_sensitive = thread_sensitive
+ markcoroutinefunction(self)
+ if thread_sensitive and executor is not None:
+ raise TypeError("executor must not be set when thread_sensitive is True")
+ self._executor = executor
+ try:
+ self.__self__ = func.__self__ # type: ignore
+ except AttributeError:
+ pass
+
+ async def __call__(self, *args: _P.args, **kwargs: _P.kwargs) -> _R:
+ __traceback_hide__ = True # noqa: F841
+ loop = asyncio.get_running_loop()
+
+ # Work out what thread to run the code in
+ if self._thread_sensitive:
+ current_thread_executor = getattr(AsyncToSync.executors, "current", None)
+ if current_thread_executor:
+ # If we have a parent sync thread above somewhere, use that
+ executor = current_thread_executor
+ elif self.thread_sensitive_context.get(None):
+ # If we have a way of retrieving the current context, attempt
+ # to use a per-context thread pool executor
+ thread_sensitive_context = self.thread_sensitive_context.get()
+
+ if thread_sensitive_context in self.context_to_thread_executor:
+ # Re-use thread executor in current context
+ executor = self.context_to_thread_executor[thread_sensitive_context]
+ else:
+ # Create new thread executor in current context
+ executor = ThreadPoolExecutor(max_workers=1)
+ self.context_to_thread_executor[thread_sensitive_context] = executor
+ elif loop in AsyncToSync.loop_thread_executors:
+ # Re-use thread executor for running loop
+ executor = AsyncToSync.loop_thread_executors[loop]
+ elif self.deadlock_context.get(False):
+ raise RuntimeError(
+ "Single thread executor already being used, would deadlock"
+ )
+ else:
+ # Otherwise, we run it in a fixed single thread
+ executor = self.single_thread_executor
+ self.deadlock_context.set(True)
+ else:
+ # Use the passed in executor, or the loop's default if it is None
+ executor = self._executor
+
+ context = contextvars.copy_context() if self.context is None else self.context
+ child = functools.partial(self.func, *args, **kwargs)
+ func = context.run
+ task_context: List[asyncio.Task[Any]] = []
+
+ # Run the code in the right thread
+ exec_coro = loop.run_in_executor(
+ executor,
+ functools.partial(
+ self.thread_handler,
+ loop,
+ sys.exc_info(),
+ task_context,
+ func,
+ child,
+ ),
+ )
+ ret: _R
+ try:
+ ret = await asyncio.shield(exec_coro)
+ except asyncio.CancelledError:
+ cancel_parent = True
+ try:
+ task = task_context[0]
+ task.cancel()
+ try:
+ await task
+ cancel_parent = False
+ except asyncio.CancelledError:
+ pass
+ except IndexError:
+ pass
+ if exec_coro.done():
+ raise
+ if cancel_parent:
+ exec_coro.cancel()
+ ret = await exec_coro
+ finally:
+ if self.context is None:
+ _restore_context(context)
+ self.deadlock_context.set(False)
+
+ return ret
+
+ def __get__(
+ self, parent: Any, objtype: Any
+ ) -> Callable[_P, Coroutine[Any, Any, _R]]:
+ """
+ Include self for methods
+ """
+ func = functools.partial(self.__call__, parent)
+ return functools.update_wrapper(func, self.func)
+
+ def thread_handler(self, loop, exc_info, task_context, func, *args, **kwargs):
+ """
+ Wraps the sync application with exception handling.
+ """
+
+ __traceback_hide__ = True # noqa: F841
+
+ # Set the threadlocal for AsyncToSync
+ self.threadlocal.main_event_loop = loop
+ self.threadlocal.main_event_loop_pid = os.getpid()
+ self.threadlocal.task_context = task_context
+
+ # Run the function
+ # If we have an exception, run the function inside the except block
+ # after raising it so exc_info is correctly populated.
+ if exc_info[1]:
+ try:
+ raise exc_info[1]
+ except BaseException:
+ return func(*args, **kwargs)
+ else:
+ return func(*args, **kwargs)
+
+
+@overload
+def async_to_sync(
+ *,
+ force_new_loop: bool = False,
+) -> Callable[
+ [Union[Callable[_P, Coroutine[Any, Any, _R]], Callable[_P, Awaitable[_R]]]],
+ Callable[_P, _R],
+]:
+ ...
+
+
+@overload
+def async_to_sync(
+ awaitable: Union[
+ Callable[_P, Coroutine[Any, Any, _R]],
+ Callable[_P, Awaitable[_R]],
+ ],
+ *,
+ force_new_loop: bool = False,
+) -> Callable[_P, _R]:
+ ...
+
+
+def async_to_sync(
+ awaitable: Optional[
+ Union[
+ Callable[_P, Coroutine[Any, Any, _R]],
+ Callable[_P, Awaitable[_R]],
+ ]
+ ] = None,
+ *,
+ force_new_loop: bool = False,
+) -> Union[
+ Callable[
+ [Union[Callable[_P, Coroutine[Any, Any, _R]], Callable[_P, Awaitable[_R]]]],
+ Callable[_P, _R],
+ ],
+ Callable[_P, _R],
+]:
+ if awaitable is None:
+ return lambda f: AsyncToSync(
+ f,
+ force_new_loop=force_new_loop,
+ )
+ return AsyncToSync(
+ awaitable,
+ force_new_loop=force_new_loop,
+ )
+
+
+@overload
+def sync_to_async(
+ *,
+ thread_sensitive: bool = True,
+ executor: Optional["ThreadPoolExecutor"] = None,
+ context: Optional[contextvars.Context] = None,
+) -> Callable[[Callable[_P, _R]], Callable[_P, Coroutine[Any, Any, _R]]]:
+ ...
+
+
+@overload
+def sync_to_async(
+ func: Callable[_P, _R],
+ *,
+ thread_sensitive: bool = True,
+ executor: Optional["ThreadPoolExecutor"] = None,
+ context: Optional[contextvars.Context] = None,
+) -> Callable[_P, Coroutine[Any, Any, _R]]:
+ ...
+
+
+def sync_to_async(
+ func: Optional[Callable[_P, _R]] = None,
+ *,
+ thread_sensitive: bool = True,
+ executor: Optional["ThreadPoolExecutor"] = None,
+ context: Optional[contextvars.Context] = None,
+) -> Union[
+ Callable[[Callable[_P, _R]], Callable[_P, Coroutine[Any, Any, _R]]],
+ Callable[_P, Coroutine[Any, Any, _R]],
+]:
+ if func is None:
+ return lambda f: SyncToAsync(
+ f,
+ thread_sensitive=thread_sensitive,
+ executor=executor,
+ context=context,
+ )
+ return SyncToAsync(
+ func,
+ thread_sensitive=thread_sensitive,
+ executor=executor,
+ context=context,
+ )
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/testing.py b/backend/.venv/lib/python3.11/site-packages/asgiref/testing.py
new file mode 100644
index 00000000..d6ccee58
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/testing.py
@@ -0,0 +1,137 @@
+import asyncio
+import contextvars
+import time
+
+from .compatibility import guarantee_single_callable
+from .timeout import timeout as async_timeout
+
+
+class ApplicationCommunicator:
+ """
+ Runs an ASGI application in a test mode, allowing sending of
+ messages to it and retrieval of messages it sends.
+ """
+
+ def __init__(self, application, scope):
+ self._future = None
+ self.application = guarantee_single_callable(application)
+ self.scope = scope
+ self._input_queue = None
+ self._output_queue = None
+
+ # For Python 3.9 we need to lazily bind the queues, on 3.10+ they bind the
+ # event loop lazily.
+ @property
+ def input_queue(self):
+ if self._input_queue is None:
+ self._input_queue = asyncio.Queue()
+ return self._input_queue
+
+ @property
+ def output_queue(self):
+ if self._output_queue is None:
+ self._output_queue = asyncio.Queue()
+ return self._output_queue
+
+ @property
+ def future(self):
+ if self._future is None:
+ # Clear context - this ensures that context vars set in the testing scope
+ # are not "leaked" into the application which would normally begin with
+ # an empty context. In Python >= 3.11 this could also be written as:
+ # asyncio.create_task(..., context=contextvars.Context())
+ self._future = contextvars.Context().run(
+ asyncio.create_task,
+ self.application(
+ self.scope, self.input_queue.get, self.output_queue.put
+ ),
+ )
+ return self._future
+
+ async def wait(self, timeout=1):
+ """
+ Waits for the application to stop itself and returns any exceptions.
+ """
+ try:
+ async with async_timeout(timeout):
+ try:
+ await self.future
+ self.future.result()
+ except asyncio.CancelledError:
+ pass
+ finally:
+ if not self.future.done():
+ self.future.cancel()
+ try:
+ await self.future
+ except asyncio.CancelledError:
+ pass
+
+ def stop(self, exceptions=True):
+ future = self._future
+ if future is None:
+ return
+
+ if not future.done():
+ future.cancel()
+ elif exceptions:
+ # Give a chance to raise any exceptions
+ future.result()
+
+ def __del__(self):
+ # Clean up on deletion
+ try:
+ self.stop(exceptions=False)
+ except RuntimeError:
+ # Event loop already stopped
+ pass
+
+ async def send_input(self, message):
+ """
+ Sends a single message to the application
+ """
+ # Make sure there's not an exception to raise from the task
+ if self.future.done():
+ self.future.result()
+
+ # Give it the message
+ await self.input_queue.put(message)
+
+ async def receive_output(self, timeout=1):
+ """
+ Receives a single message from the application, with optional timeout.
+ """
+ # Make sure there's not an exception to raise from the task
+ if self.future.done():
+ self.future.result()
+ # Wait and receive the message
+ try:
+ async with async_timeout(timeout):
+ return await self.output_queue.get()
+ except asyncio.TimeoutError as e:
+ # See if we have another error to raise inside
+ if self.future.done():
+ self.future.result()
+ else:
+ self.future.cancel()
+ try:
+ await self.future
+ except asyncio.CancelledError:
+ pass
+ raise e
+
+ async def receive_nothing(self, timeout=0.1, interval=0.01):
+ """
+ Checks that there is no message to receive in the given time.
+ """
+ # Make sure there's not an exception to raise from the task
+ if self.future.done():
+ self.future.result()
+
+ # `interval` has precedence over `timeout`
+ start = time.monotonic()
+ while time.monotonic() - start < timeout:
+ if not self.output_queue.empty():
+ return False
+ await asyncio.sleep(interval)
+ return self.output_queue.empty()
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/timeout.py b/backend/.venv/lib/python3.11/site-packages/asgiref/timeout.py
new file mode 100644
index 00000000..fd5381d0
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/timeout.py
@@ -0,0 +1,118 @@
+# This code is originally sourced from the aio-libs project "async_timeout",
+# under the Apache 2.0 license. You may see the original project at
+# https://github.com/aio-libs/async-timeout
+
+# It is vendored here to reduce chain-dependencies on this library, and
+# modified slightly to remove some features we don't use.
+
+
+import asyncio
+import warnings
+from types import TracebackType
+from typing import Any # noqa
+from typing import Optional, Type
+
+
+class timeout:
+ """timeout context manager.
+
+ Useful in cases when you want to apply timeout logic around block
+ of code or in cases when asyncio.wait_for is not suitable. For example:
+
+ >>> with timeout(0.001):
+ ... async with aiohttp.get('https://github.com') as r:
+ ... await r.text()
+
+
+ timeout - value in seconds or None to disable timeout logic
+ loop - asyncio compatible event loop
+ """
+
+ def __init__(
+ self,
+ timeout: Optional[float],
+ *,
+ loop: Optional[asyncio.AbstractEventLoop] = None,
+ ) -> None:
+ self._timeout = timeout
+ if loop is None:
+ loop = asyncio.get_running_loop()
+ else:
+ warnings.warn(
+ """The loop argument to timeout() is deprecated.""", DeprecationWarning
+ )
+ self._loop = loop
+ self._task = None # type: Optional[asyncio.Task[Any]]
+ self._cancelled = False
+ self._cancel_handler = None # type: Optional[asyncio.Handle]
+ self._cancel_at = None # type: Optional[float]
+
+ def __enter__(self) -> "timeout":
+ return self._do_enter()
+
+ def __exit__(
+ self,
+ exc_type: Type[BaseException],
+ exc_val: BaseException,
+ exc_tb: TracebackType,
+ ) -> Optional[bool]:
+ self._do_exit(exc_type)
+ return None
+
+ async def __aenter__(self) -> "timeout":
+ return self._do_enter()
+
+ async def __aexit__(
+ self,
+ exc_type: Type[BaseException],
+ exc_val: BaseException,
+ exc_tb: TracebackType,
+ ) -> None:
+ self._do_exit(exc_type)
+
+ @property
+ def expired(self) -> bool:
+ return self._cancelled
+
+ @property
+ def remaining(self) -> Optional[float]:
+ if self._cancel_at is not None:
+ return max(self._cancel_at - self._loop.time(), 0.0)
+ else:
+ return None
+
+ def _do_enter(self) -> "timeout":
+ # Support Tornado 5- without timeout
+ # Details: https://github.com/python/asyncio/issues/392
+ if self._timeout is None:
+ return self
+
+ self._task = asyncio.current_task(self._loop)
+ if self._task is None:
+ raise RuntimeError(
+ "Timeout context manager should be used " "inside a task"
+ )
+
+ if self._timeout <= 0:
+ self._loop.call_soon(self._cancel_task)
+ return self
+
+ self._cancel_at = self._loop.time() + self._timeout
+ self._cancel_handler = self._loop.call_at(self._cancel_at, self._cancel_task)
+ return self
+
+ def _do_exit(self, exc_type: Type[BaseException]) -> None:
+ if exc_type is asyncio.CancelledError and self._cancelled:
+ self._cancel_handler = None
+ self._task = None
+ raise asyncio.TimeoutError
+ if self._timeout is not None and self._cancel_handler is not None:
+ self._cancel_handler.cancel()
+ self._cancel_handler = None
+ self._task = None
+ return None
+
+ def _cancel_task(self) -> None:
+ if self._task is not None:
+ self._task.cancel()
+ self._cancelled = True
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/typing.py b/backend/.venv/lib/python3.11/site-packages/asgiref/typing.py
new file mode 100644
index 00000000..368aed59
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/typing.py
@@ -0,0 +1,279 @@
+import sys
+from typing import (
+ Any,
+ Awaitable,
+ Callable,
+ Dict,
+ Iterable,
+ Literal,
+ Optional,
+ Protocol,
+ Tuple,
+ Type,
+ TypedDict,
+ Union,
+)
+
+if sys.version_info >= (3, 11):
+ from typing import NotRequired
+else:
+ from typing_extensions import NotRequired
+
+__all__ = (
+ "ASGIVersions",
+ "HTTPScope",
+ "WebSocketScope",
+ "LifespanScope",
+ "WWWScope",
+ "Scope",
+ "HTTPRequestEvent",
+ "HTTPResponseStartEvent",
+ "HTTPResponseBodyEvent",
+ "HTTPResponseTrailersEvent",
+ "HTTPResponsePathsendEvent",
+ "HTTPServerPushEvent",
+ "HTTPDisconnectEvent",
+ "WebSocketConnectEvent",
+ "WebSocketAcceptEvent",
+ "WebSocketReceiveEvent",
+ "WebSocketSendEvent",
+ "WebSocketResponseStartEvent",
+ "WebSocketResponseBodyEvent",
+ "WebSocketDisconnectEvent",
+ "WebSocketCloseEvent",
+ "LifespanStartupEvent",
+ "LifespanShutdownEvent",
+ "LifespanStartupCompleteEvent",
+ "LifespanStartupFailedEvent",
+ "LifespanShutdownCompleteEvent",
+ "LifespanShutdownFailedEvent",
+ "ASGIReceiveEvent",
+ "ASGISendEvent",
+ "ASGIReceiveCallable",
+ "ASGISendCallable",
+ "ASGI2Protocol",
+ "ASGI2Application",
+ "ASGI3Application",
+ "ASGIApplication",
+)
+
+
+class ASGIVersions(TypedDict):
+ spec_version: str
+ version: Union[Literal["2.0"], Literal["3.0"]]
+
+
+class HTTPScope(TypedDict):
+ type: Literal["http"]
+ asgi: ASGIVersions
+ http_version: str
+ method: str
+ scheme: str
+ path: str
+ raw_path: bytes
+ query_string: bytes
+ root_path: str
+ headers: Iterable[Tuple[bytes, bytes]]
+ client: Optional[Tuple[str, int]]
+ server: Optional[Tuple[str, Optional[int]]]
+ state: NotRequired[Dict[str, Any]]
+ extensions: Optional[Dict[str, Dict[object, object]]]
+
+
+class WebSocketScope(TypedDict):
+ type: Literal["websocket"]
+ asgi: ASGIVersions
+ http_version: str
+ scheme: str
+ path: str
+ raw_path: bytes
+ query_string: bytes
+ root_path: str
+ headers: Iterable[Tuple[bytes, bytes]]
+ client: Optional[Tuple[str, int]]
+ server: Optional[Tuple[str, Optional[int]]]
+ subprotocols: Iterable[str]
+ state: NotRequired[Dict[str, Any]]
+ extensions: Optional[Dict[str, Dict[object, object]]]
+
+
+class LifespanScope(TypedDict):
+ type: Literal["lifespan"]
+ asgi: ASGIVersions
+ state: NotRequired[Dict[str, Any]]
+
+
+WWWScope = Union[HTTPScope, WebSocketScope]
+Scope = Union[HTTPScope, WebSocketScope, LifespanScope]
+
+
+class HTTPRequestEvent(TypedDict):
+ type: Literal["http.request"]
+ body: bytes
+ more_body: bool
+
+
+class HTTPResponseDebugEvent(TypedDict):
+ type: Literal["http.response.debug"]
+ info: Dict[str, object]
+
+
+class HTTPResponseStartEvent(TypedDict):
+ type: Literal["http.response.start"]
+ status: int
+ headers: Iterable[Tuple[bytes, bytes]]
+ trailers: bool
+
+
+class HTTPResponseBodyEvent(TypedDict):
+ type: Literal["http.response.body"]
+ body: bytes
+ more_body: bool
+
+
+class HTTPResponseTrailersEvent(TypedDict):
+ type: Literal["http.response.trailers"]
+ headers: Iterable[Tuple[bytes, bytes]]
+ more_trailers: bool
+
+
+class HTTPResponsePathsendEvent(TypedDict):
+ type: Literal["http.response.pathsend"]
+ path: str
+
+
+class HTTPServerPushEvent(TypedDict):
+ type: Literal["http.response.push"]
+ path: str
+ headers: Iterable[Tuple[bytes, bytes]]
+
+
+class HTTPDisconnectEvent(TypedDict):
+ type: Literal["http.disconnect"]
+
+
+class WebSocketConnectEvent(TypedDict):
+ type: Literal["websocket.connect"]
+
+
+class WebSocketAcceptEvent(TypedDict):
+ type: Literal["websocket.accept"]
+ subprotocol: Optional[str]
+ headers: Iterable[Tuple[bytes, bytes]]
+
+
+class WebSocketReceiveEvent(TypedDict):
+ type: Literal["websocket.receive"]
+ bytes: Optional[bytes]
+ text: Optional[str]
+
+
+class WebSocketSendEvent(TypedDict):
+ type: Literal["websocket.send"]
+ bytes: Optional[bytes]
+ text: Optional[str]
+
+
+class WebSocketResponseStartEvent(TypedDict):
+ type: Literal["websocket.http.response.start"]
+ status: int
+ headers: Iterable[Tuple[bytes, bytes]]
+
+
+class WebSocketResponseBodyEvent(TypedDict):
+ type: Literal["websocket.http.response.body"]
+ body: bytes
+ more_body: bool
+
+
+class WebSocketDisconnectEvent(TypedDict):
+ type: Literal["websocket.disconnect"]
+ code: int
+ reason: Optional[str]
+
+
+class WebSocketCloseEvent(TypedDict):
+ type: Literal["websocket.close"]
+ code: int
+ reason: Optional[str]
+
+
+class LifespanStartupEvent(TypedDict):
+ type: Literal["lifespan.startup"]
+
+
+class LifespanShutdownEvent(TypedDict):
+ type: Literal["lifespan.shutdown"]
+
+
+class LifespanStartupCompleteEvent(TypedDict):
+ type: Literal["lifespan.startup.complete"]
+
+
+class LifespanStartupFailedEvent(TypedDict):
+ type: Literal["lifespan.startup.failed"]
+ message: str
+
+
+class LifespanShutdownCompleteEvent(TypedDict):
+ type: Literal["lifespan.shutdown.complete"]
+
+
+class LifespanShutdownFailedEvent(TypedDict):
+ type: Literal["lifespan.shutdown.failed"]
+ message: str
+
+
+ASGIReceiveEvent = Union[
+ HTTPRequestEvent,
+ HTTPDisconnectEvent,
+ WebSocketConnectEvent,
+ WebSocketReceiveEvent,
+ WebSocketDisconnectEvent,
+ LifespanStartupEvent,
+ LifespanShutdownEvent,
+]
+
+
+ASGISendEvent = Union[
+ HTTPResponseStartEvent,
+ HTTPResponseBodyEvent,
+ HTTPResponseTrailersEvent,
+ HTTPServerPushEvent,
+ HTTPDisconnectEvent,
+ WebSocketAcceptEvent,
+ WebSocketSendEvent,
+ WebSocketResponseStartEvent,
+ WebSocketResponseBodyEvent,
+ WebSocketCloseEvent,
+ LifespanStartupCompleteEvent,
+ LifespanStartupFailedEvent,
+ LifespanShutdownCompleteEvent,
+ LifespanShutdownFailedEvent,
+]
+
+
+ASGIReceiveCallable = Callable[[], Awaitable[ASGIReceiveEvent]]
+ASGISendCallable = Callable[[ASGISendEvent], Awaitable[None]]
+
+
+class ASGI2Protocol(Protocol):
+ def __init__(self, scope: Scope) -> None:
+ ...
+
+ async def __call__(
+ self, receive: ASGIReceiveCallable, send: ASGISendCallable
+ ) -> None:
+ ...
+
+
+ASGI2Application = Type[ASGI2Protocol]
+ASGI3Application = Callable[
+ [
+ Scope,
+ ASGIReceiveCallable,
+ ASGISendCallable,
+ ],
+ Awaitable[None],
+]
+ASGIApplication = Union[ASGI2Application, ASGI3Application]
diff --git a/backend/.venv/lib/python3.11/site-packages/asgiref/wsgi.py b/backend/.venv/lib/python3.11/site-packages/asgiref/wsgi.py
new file mode 100644
index 00000000..b9868e33
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/asgiref/wsgi.py
@@ -0,0 +1,166 @@
+import sys
+from tempfile import SpooledTemporaryFile
+
+from asgiref.sync import AsyncToSync, sync_to_async
+
+
+class WsgiToAsgi:
+ """
+ Wraps a WSGI application to make it into an ASGI application.
+ """
+
+ def __init__(self, wsgi_application):
+ self.wsgi_application = wsgi_application
+
+ async def __call__(self, scope, receive, send):
+ """
+ ASGI application instantiation point.
+ We return a new WsgiToAsgiInstance here with the WSGI app
+ and the scope, ready to respond when it is __call__ed.
+ """
+ await WsgiToAsgiInstance(self.wsgi_application)(scope, receive, send)
+
+
+class WsgiToAsgiInstance:
+ """
+ Per-socket instance of a wrapped WSGI application
+ """
+
+ def __init__(self, wsgi_application):
+ self.wsgi_application = wsgi_application
+ self.response_started = False
+ self.response_content_length = None
+
+ async def __call__(self, scope, receive, send):
+ if scope["type"] != "http":
+ raise ValueError("WSGI wrapper received a non-HTTP scope")
+ self.scope = scope
+ with SpooledTemporaryFile(max_size=65536) as body:
+ # Alright, wait for the http.request messages
+ while True:
+ message = await receive()
+ if message["type"] != "http.request":
+ raise ValueError("WSGI wrapper received a non-HTTP-request message")
+ body.write(message.get("body", b""))
+ if not message.get("more_body"):
+ break
+ body.seek(0)
+ # Wrap send so it can be called from the subthread
+ self.sync_send = AsyncToSync(send)
+ # Call the WSGI app
+ await self.run_wsgi_app(body)
+
+ def build_environ(self, scope, body):
+ """
+ Builds a scope and request body into a WSGI environ object.
+ """
+ script_name = scope.get("root_path", "").encode("utf8").decode("latin1")
+ path_info = scope["path"].encode("utf8").decode("latin1")
+ if path_info.startswith(script_name):
+ path_info = path_info[len(script_name) :]
+ environ = {
+ "REQUEST_METHOD": scope["method"],
+ "SCRIPT_NAME": script_name,
+ "PATH_INFO": path_info,
+ "QUERY_STRING": scope["query_string"].decode("ascii"),
+ "SERVER_PROTOCOL": "HTTP/%s" % scope["http_version"],
+ "wsgi.version": (1, 0),
+ "wsgi.url_scheme": scope.get("scheme", "http"),
+ "wsgi.input": body,
+ "wsgi.errors": sys.stderr,
+ "wsgi.multithread": True,
+ "wsgi.multiprocess": True,
+ "wsgi.run_once": False,
+ }
+ # Get server name and port - required in WSGI, not in ASGI
+ if "server" in scope:
+ environ["SERVER_NAME"] = scope["server"][0]
+ environ["SERVER_PORT"] = str(scope["server"][1])
+ else:
+ environ["SERVER_NAME"] = "localhost"
+ environ["SERVER_PORT"] = "80"
+
+ if scope.get("client") is not None:
+ environ["REMOTE_ADDR"] = scope["client"][0]
+
+ # Go through headers and make them into environ entries
+ for name, value in self.scope.get("headers", []):
+ name = name.decode("latin1")
+ if name == "content-length":
+ corrected_name = "CONTENT_LENGTH"
+ elif name == "content-type":
+ corrected_name = "CONTENT_TYPE"
+ else:
+ corrected_name = "HTTP_%s" % name.upper().replace("-", "_")
+ # HTTPbis say only ASCII chars are allowed in headers, but we latin1 just in case
+ value = value.decode("latin1")
+ if corrected_name in environ:
+ value = environ[corrected_name] + "," + value
+ environ[corrected_name] = value
+ return environ
+
+ def start_response(self, status, response_headers, exc_info=None):
+ """
+ WSGI start_response callable.
+ """
+ # Don't allow re-calling once response has begun
+ if self.response_started:
+ raise exc_info[1].with_traceback(exc_info[2])
+ # Don't allow re-calling without exc_info
+ if hasattr(self, "response_start") and exc_info is None:
+ raise ValueError(
+ "You cannot call start_response a second time without exc_info"
+ )
+ # Extract status code
+ status_code, _ = status.split(" ", 1)
+ status_code = int(status_code)
+ # Extract headers
+ headers = [
+ (name.lower().encode("ascii"), value.encode("ascii"))
+ for name, value in response_headers
+ ]
+ # Extract content-length
+ self.response_content_length = None
+ for name, value in response_headers:
+ if name.lower() == "content-length":
+ self.response_content_length = int(value)
+ # Build and send response start message.
+ self.response_start = {
+ "type": "http.response.start",
+ "status": status_code,
+ "headers": headers,
+ }
+
+ @sync_to_async
+ def run_wsgi_app(self, body):
+ """
+ Called in a subthread to run the WSGI app. We encapsulate like
+ this so that the start_response callable is called in the same thread.
+ """
+ # Translate the scope and incoming request body into a WSGI environ
+ environ = self.build_environ(self.scope, body)
+ # Run the WSGI app
+ bytes_sent = 0
+ for output in self.wsgi_application(environ, self.start_response):
+ # If this is the first response, include the response headers
+ if not self.response_started:
+ self.response_started = True
+ self.sync_send(self.response_start)
+ # If the application supplies a Content-Length header
+ if self.response_content_length is not None:
+ # The server should not transmit more bytes to the client than the header allows
+ bytes_allowed = self.response_content_length - bytes_sent
+ if len(output) > bytes_allowed:
+ output = output[:bytes_allowed]
+ self.sync_send(
+ {"type": "http.response.body", "body": output, "more_body": True}
+ )
+ bytes_sent += len(output)
+ # The server should stop iterating over the response when enough data has been sent
+ if bytes_sent == self.response_content_length:
+ break
+ # Close connection
+ if not self.response_started:
+ self.response_started = True
+ self.sync_send(self.response_start)
+ self.sync_send({"type": "http.response.body"})
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__init__.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..e45bfdd8
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/apps.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/apps.cpython-311.pyc
new file mode 100644
index 00000000..498daff0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/apps.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/checks.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/checks.cpython-311.pyc
new file mode 100644
index 00000000..bebb4364
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/checks.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/conf.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/conf.cpython-311.pyc
new file mode 100644
index 00000000..9eb8d81b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/conf.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/defaults.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/defaults.cpython-311.pyc
new file mode 100644
index 00000000..ea48b71c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/defaults.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/middleware.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/middleware.cpython-311.pyc
new file mode 100644
index 00000000..51e1b7fa
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/middleware.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/signals.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/signals.cpython-311.pyc
new file mode 100644
index 00000000..dfbce3b1
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/corsheaders/__pycache__/signals.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/apps.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/apps.py
new file mode 100644
index 00000000..b69a7309
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/apps.py
@@ -0,0 +1,14 @@
+from __future__ import annotations
+
+from django.apps import AppConfig
+from django.core.checks import Tags, register
+
+from corsheaders.checks import check_settings
+
+
+class CorsHeadersAppConfig(AppConfig):
+ name = "corsheaders"
+ verbose_name = "django-cors-headers"
+
+ def ready(self) -> None:
+ register(Tags.security)(check_settings)
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/checks.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/checks.py
new file mode 100644
index 00000000..397ab6a3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/checks.py
@@ -0,0 +1,171 @@
+from __future__ import annotations
+
+import re
+from collections.abc import Sequence
+from typing import Any
+from urllib.parse import urlsplit
+
+from django.conf import settings
+from django.core.checks import CheckMessage, Error
+
+from corsheaders.conf import conf
+
+re_type = type(re.compile(""))
+
+
+def check_settings(**kwargs: Any) -> list[CheckMessage]:
+ errors: list[CheckMessage] = []
+
+ if not is_sequence(conf.CORS_ALLOW_HEADERS, str):
+ errors.append(
+ Error(
+ "CORS_ALLOW_HEADERS should be a sequence of strings.",
+ id="corsheaders.E001",
+ )
+ )
+
+ if not is_sequence(conf.CORS_ALLOW_METHODS, str):
+ errors.append(
+ Error(
+ "CORS_ALLOW_METHODS should be a sequence of strings.",
+ id="corsheaders.E002",
+ )
+ )
+
+ if not isinstance(conf.CORS_ALLOW_CREDENTIALS, bool):
+ errors.append( # type: ignore [unreachable]
+ Error("CORS_ALLOW_CREDENTIALS should be a bool.", id="corsheaders.E003")
+ )
+
+ if not isinstance(conf.CORS_ALLOW_PRIVATE_NETWORK, bool):
+ errors.append( # type: ignore [unreachable]
+ Error(
+ "CORS_ALLOW_PRIVATE_NETWORK should be a bool.",
+ id="corsheaders.E015",
+ )
+ )
+
+ if (
+ not isinstance(conf.CORS_PREFLIGHT_MAX_AGE, int) # type: ignore [redundant-expr]
+ or conf.CORS_PREFLIGHT_MAX_AGE < 0
+ ):
+ errors.append(
+ Error(
+ (
+ "CORS_PREFLIGHT_MAX_AGE should be an integer greater than "
+ + "or equal to zero."
+ ),
+ id="corsheaders.E004",
+ )
+ )
+
+ if not isinstance(conf.CORS_ALLOW_ALL_ORIGINS, bool):
+ if hasattr(settings, "CORS_ALLOW_ALL_ORIGINS"): # type: ignore [unreachable]
+ allow_all_alias = "CORS_ALLOW_ALL_ORIGINS"
+ else:
+ allow_all_alias = "CORS_ORIGIN_ALLOW_ALL"
+ errors.append(
+ Error(
+ f"{allow_all_alias} should be a bool.",
+ id="corsheaders.E005",
+ )
+ )
+
+ if hasattr(settings, "CORS_ALLOWED_ORIGINS"):
+ allowed_origins_alias = "CORS_ALLOWED_ORIGINS"
+ else:
+ allowed_origins_alias = "CORS_ORIGIN_WHITELIST"
+
+ if not is_sequence(conf.CORS_ALLOWED_ORIGINS, str):
+ errors.append(
+ Error(
+ f"{allowed_origins_alias} should be a sequence of strings.",
+ id="corsheaders.E006",
+ )
+ )
+ else:
+ special_origin_values = (
+ # From 'security sensitive' contexts
+ "null",
+ # From files on Chrome on Android
+ # https://bugs.chromium.org/p/chromium/issues/detail?id=991107
+ "file://",
+ )
+ for origin in conf.CORS_ALLOWED_ORIGINS:
+ if origin in special_origin_values:
+ continue
+ parsed = urlsplit(origin)
+ if parsed.scheme == "" or parsed.netloc == "":
+ errors.append(
+ Error(
+ f"Origin {repr(origin)} in {allowed_origins_alias} is missing scheme or netloc",
+ id="corsheaders.E013",
+ hint=(
+ "Add a scheme (e.g. https://) or netloc (e.g. "
+ + "example.com)."
+ ),
+ )
+ )
+ else:
+ # Only do this check in this case because if the scheme is not
+ # provided, netloc ends up in path
+ for part in ("path", "query", "fragment"):
+ if getattr(parsed, part) != "":
+ errors.append(
+ Error(
+ f"Origin {repr(origin)} in {allowed_origins_alias} should not have {part}",
+ id="corsheaders.E014",
+ )
+ )
+
+ if hasattr(settings, "CORS_ALLOWED_ORIGIN_REGEXES"):
+ allowed_regexes_alias = "CORS_ALLOWED_ORIGIN_REGEXES"
+ else:
+ allowed_regexes_alias = "CORS_ORIGIN_REGEX_WHITELIST"
+ if not is_sequence(conf.CORS_ALLOWED_ORIGIN_REGEXES, (str, re_type)):
+ errors.append(
+ Error(
+ f"{allowed_regexes_alias} should be a sequence of strings and/or compiled regexes.",
+ id="corsheaders.E007",
+ )
+ )
+
+ if not is_sequence(conf.CORS_EXPOSE_HEADERS, str):
+ errors.append(
+ Error("CORS_EXPOSE_HEADERS should be a sequence.", id="corsheaders.E008")
+ )
+
+ if not isinstance(conf.CORS_URLS_REGEX, (str, re_type)):
+ errors.append(
+ Error("CORS_URLS_REGEX should be a string or regex.", id="corsheaders.E009")
+ )
+
+ if hasattr(settings, "CORS_MODEL"):
+ errors.append(
+ Error(
+ (
+ "The CORS_MODEL setting has been removed - see "
+ + "django-cors-headers' HISTORY."
+ ),
+ id="corsheaders.E012",
+ )
+ )
+
+ if hasattr(settings, "CORS_REPLACE_HTTPS_REFERER"):
+ errors.append(
+ Error(
+ (
+ "The CORS_REPLACE_HTTPS_REFERER setting has been removed"
+ + " - see django-cors-headers' CHANGELOG."
+ ),
+ id="corsheaders.E013",
+ )
+ )
+
+ return errors
+
+
+def is_sequence(thing: Any, type_or_types: type[Any] | tuple[type[Any], ...]) -> bool:
+ return isinstance(thing, Sequence) and all(
+ isinstance(x, type_or_types) for x in thing
+ )
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/conf.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/conf.py
new file mode 100644
index 00000000..79b3e331
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/conf.py
@@ -0,0 +1,71 @@
+from __future__ import annotations
+
+from collections.abc import Sequence
+from re import Pattern
+from typing import Union, cast
+
+from django.conf import settings
+
+from corsheaders.defaults import default_headers, default_methods
+
+
+class Settings:
+ """
+ Shadow Django's settings with a little logic
+ """
+
+ @property
+ def CORS_ALLOW_HEADERS(self) -> Sequence[str]:
+ return getattr(settings, "CORS_ALLOW_HEADERS", default_headers)
+
+ @property
+ def CORS_ALLOW_METHODS(self) -> Sequence[str]:
+ return getattr(settings, "CORS_ALLOW_METHODS", default_methods)
+
+ @property
+ def CORS_ALLOW_CREDENTIALS(self) -> bool:
+ return getattr(settings, "CORS_ALLOW_CREDENTIALS", False)
+
+ @property
+ def CORS_ALLOW_PRIVATE_NETWORK(self) -> bool:
+ return getattr(settings, "CORS_ALLOW_PRIVATE_NETWORK", False)
+
+ @property
+ def CORS_PREFLIGHT_MAX_AGE(self) -> int:
+ return getattr(settings, "CORS_PREFLIGHT_MAX_AGE", 86400)
+
+ @property
+ def CORS_ALLOW_ALL_ORIGINS(self) -> bool:
+ return getattr(
+ settings,
+ "CORS_ALLOW_ALL_ORIGINS",
+ getattr(settings, "CORS_ORIGIN_ALLOW_ALL", False),
+ )
+
+ @property
+ def CORS_ALLOWED_ORIGINS(self) -> list[str] | tuple[str]:
+ value = getattr(
+ settings,
+ "CORS_ALLOWED_ORIGINS",
+ getattr(settings, "CORS_ORIGIN_WHITELIST", ()),
+ )
+ return cast(Union[list[str], tuple[str]], value)
+
+ @property
+ def CORS_ALLOWED_ORIGIN_REGEXES(self) -> Sequence[str | Pattern[str]]:
+ return getattr(
+ settings,
+ "CORS_ALLOWED_ORIGIN_REGEXES",
+ getattr(settings, "CORS_ORIGIN_REGEX_WHITELIST", ()),
+ )
+
+ @property
+ def CORS_EXPOSE_HEADERS(self) -> Sequence[str]:
+ return getattr(settings, "CORS_EXPOSE_HEADERS", ())
+
+ @property
+ def CORS_URLS_REGEX(self) -> str | Pattern[str]:
+ return getattr(settings, "CORS_URLS_REGEX", r"^.*$")
+
+
+conf = Settings()
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/defaults.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/defaults.py
new file mode 100644
index 00000000..943b9c06
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/defaults.py
@@ -0,0 +1,21 @@
+from __future__ import annotations
+
+# Kept here for backwards compatibility
+
+default_headers = (
+ "accept",
+ "authorization",
+ "content-type",
+ "user-agent",
+ "x-csrftoken",
+ "x-requested-with",
+)
+
+default_methods = (
+ "DELETE",
+ "GET",
+ "OPTIONS",
+ "PATCH",
+ "POST",
+ "PUT",
+)
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/middleware.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/middleware.py
new file mode 100644
index 00000000..336b7a32
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/middleware.py
@@ -0,0 +1,166 @@
+from __future__ import annotations
+
+import re
+from collections.abc import Awaitable
+from typing import Callable
+from urllib.parse import SplitResult, urlsplit
+
+from asgiref.sync import iscoroutinefunction, markcoroutinefunction
+from django.http import HttpRequest, HttpResponse
+from django.http.response import HttpResponseBase
+from django.utils.cache import patch_vary_headers
+
+from corsheaders.conf import conf
+from corsheaders.signals import check_request_enabled
+
+ACCESS_CONTROL_ALLOW_ORIGIN = "access-control-allow-origin"
+ACCESS_CONTROL_EXPOSE_HEADERS = "access-control-expose-headers"
+ACCESS_CONTROL_ALLOW_CREDENTIALS = "access-control-allow-credentials"
+ACCESS_CONTROL_ALLOW_HEADERS = "access-control-allow-headers"
+ACCESS_CONTROL_ALLOW_METHODS = "access-control-allow-methods"
+ACCESS_CONTROL_MAX_AGE = "access-control-max-age"
+ACCESS_CONTROL_REQUEST_PRIVATE_NETWORK = "access-control-request-private-network"
+ACCESS_CONTROL_ALLOW_PRIVATE_NETWORK = "access-control-allow-private-network"
+
+
+class CorsMiddleware:
+ sync_capable = True
+ async_capable = True
+
+ def __init__(
+ self,
+ get_response: (
+ Callable[[HttpRequest], HttpResponseBase]
+ | Callable[[HttpRequest], Awaitable[HttpResponseBase]]
+ ),
+ ) -> None:
+ self.get_response = get_response
+ self.async_mode = iscoroutinefunction(self.get_response)
+
+ if self.async_mode:
+ # Mark the class as async-capable, but do the actual switch
+
+ # inside __call__ to avoid swapping out dunder methods
+ markcoroutinefunction(self)
+
+ def __call__(
+ self, request: HttpRequest
+ ) -> HttpResponseBase | Awaitable[HttpResponseBase]:
+ if self.async_mode:
+ return self.__acall__(request)
+ response: HttpResponseBase | None = self.check_preflight(request)
+ if response is None:
+ result = self.get_response(request)
+ assert isinstance(result, HttpResponseBase)
+ response = result
+ self.add_response_headers(request, response)
+ return response
+
+ async def __acall__(self, request: HttpRequest) -> HttpResponseBase:
+ response = self.check_preflight(request)
+ if response is None:
+ result = self.get_response(request)
+ assert not isinstance(result, HttpResponseBase)
+ response = await result
+ self.add_response_headers(request, response)
+ return response
+
+ def check_preflight(self, request: HttpRequest) -> HttpResponseBase | None:
+ """
+ Generate a response for CORS preflight requests.
+ """
+ request._cors_enabled = self.is_enabled(request) # type: ignore [attr-defined]
+ if (
+ request._cors_enabled # type: ignore [attr-defined]
+ and request.method == "OPTIONS"
+ and "access-control-request-method" in request.headers
+ ):
+ return HttpResponse(headers={"content-length": "0"})
+ return None
+
+ def add_response_headers(
+ self, request: HttpRequest, response: HttpResponseBase
+ ) -> HttpResponseBase:
+ """
+ Add the respective CORS headers
+ """
+ enabled = getattr(request, "_cors_enabled", None)
+ if enabled is None:
+ enabled = self.is_enabled(request)
+
+ if not enabled:
+ return response
+
+ patch_vary_headers(response, ("origin",))
+
+ origin = request.headers.get("origin")
+ if not origin:
+ return response
+
+ try:
+ url = urlsplit(origin)
+ except ValueError:
+ return response
+
+ if (
+ not conf.CORS_ALLOW_ALL_ORIGINS
+ and not self.origin_found_in_white_lists(origin, url)
+ and not self.check_signal(request)
+ ):
+ return response
+
+ if conf.CORS_ALLOW_ALL_ORIGINS and not conf.CORS_ALLOW_CREDENTIALS:
+ response[ACCESS_CONTROL_ALLOW_ORIGIN] = "*"
+ else:
+ response[ACCESS_CONTROL_ALLOW_ORIGIN] = origin
+
+ if conf.CORS_ALLOW_CREDENTIALS:
+ response[ACCESS_CONTROL_ALLOW_CREDENTIALS] = "true"
+
+ if len(conf.CORS_EXPOSE_HEADERS):
+ response[ACCESS_CONTROL_EXPOSE_HEADERS] = ", ".join(
+ conf.CORS_EXPOSE_HEADERS
+ )
+
+ if request.method == "OPTIONS":
+ response[ACCESS_CONTROL_ALLOW_HEADERS] = ", ".join(conf.CORS_ALLOW_HEADERS)
+ response[ACCESS_CONTROL_ALLOW_METHODS] = ", ".join(conf.CORS_ALLOW_METHODS)
+ if conf.CORS_PREFLIGHT_MAX_AGE:
+ response[ACCESS_CONTROL_MAX_AGE] = str(conf.CORS_PREFLIGHT_MAX_AGE)
+
+ if (
+ conf.CORS_ALLOW_PRIVATE_NETWORK
+ and request.headers.get(ACCESS_CONTROL_REQUEST_PRIVATE_NETWORK) == "true"
+ ):
+ response[ACCESS_CONTROL_ALLOW_PRIVATE_NETWORK] = "true"
+
+ return response
+
+ def origin_found_in_white_lists(self, origin: str, url: SplitResult) -> bool:
+ return (
+ (origin == "null" and origin in conf.CORS_ALLOWED_ORIGINS)
+ or self._url_in_whitelist(url)
+ or self.regex_domain_match(origin)
+ )
+
+ def regex_domain_match(self, origin: str) -> bool:
+ return any(
+ re.match(domain_pattern, origin)
+ for domain_pattern in conf.CORS_ALLOWED_ORIGIN_REGEXES
+ )
+
+ def is_enabled(self, request: HttpRequest) -> bool:
+ return bool(
+ re.match(conf.CORS_URLS_REGEX, request.path_info)
+ ) or self.check_signal(request)
+
+ def check_signal(self, request: HttpRequest) -> bool:
+ signal_responses = check_request_enabled.send(sender=None, request=request)
+ return any(return_value for function, return_value in signal_responses)
+
+ def _url_in_whitelist(self, url: SplitResult) -> bool:
+ origins = [urlsplit(o) for o in conf.CORS_ALLOWED_ORIGINS]
+ return any(
+ origin.scheme == url.scheme and origin.netloc == url.netloc
+ for origin in origins
+ )
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/py.typed b/backend/.venv/lib/python3.11/site-packages/corsheaders/py.typed
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/corsheaders/signals.py b/backend/.venv/lib/python3.11/site-packages/corsheaders/signals.py
new file mode 100644
index 00000000..9e7160e9
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/corsheaders/signals.py
@@ -0,0 +1,8 @@
+from __future__ import annotations
+
+from django.dispatch import Signal
+
+# If any attached handler returns Truthy, CORS will be allowed for the request.
+# This can be used to build custom logic into the request handling when the
+# configuration doesn't work.
+check_request_enabled = Signal()
diff --git a/backend/.venv/lib/python3.11/site-packages/distutils-precedence.pth b/backend/.venv/lib/python3.11/site-packages/distutils-precedence.pth
new file mode 100644
index 00000000..7f009fe9
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/distutils-precedence.pth
@@ -0,0 +1 @@
+import os; var = 'SETUPTOOLS_USE_DISTUTILS'; enabled = os.environ.get(var, 'local') == 'local'; enabled and __import__('_distutils_hack').add_shim();
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/INSTALLER b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/METADATA b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/METADATA
new file mode 100644
index 00000000..ab39d63c
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/METADATA
@@ -0,0 +1,98 @@
+Metadata-Version: 2.4
+Name: Django
+Version: 5.2.8
+Summary: A high-level Python web framework that encourages rapid development and clean, pragmatic design.
+Author-email: Django Software Foundation
+License-Expression: BSD-3-Clause
+Project-URL: Homepage, https://www.djangoproject.com/
+Project-URL: Documentation, https://docs.djangoproject.com/
+Project-URL: Release notes, https://docs.djangoproject.com/en/stable/releases/
+Project-URL: Funding, https://www.djangoproject.com/fundraising/
+Project-URL: Source, https://github.com/django/django
+Project-URL: Tracker, https://code.djangoproject.com/
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Web Environment
+Classifier: Framework :: Django
+Classifier: Intended Audience :: Developers
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
+Classifier: Topic :: Internet :: WWW/HTTP
+Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
+Classifier: Topic :: Internet :: WWW/HTTP :: WSGI
+Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
+License-File: LICENSE
+License-File: LICENSE.python
+Requires-Dist: asgiref>=3.8.1
+Requires-Dist: sqlparse>=0.3.1
+Requires-Dist: tzdata; sys_platform == "win32"
+Provides-Extra: argon2
+Requires-Dist: argon2-cffi>=19.1.0; extra == "argon2"
+Provides-Extra: bcrypt
+Requires-Dist: bcrypt; extra == "bcrypt"
+Dynamic: license-file
+
+======
+Django
+======
+
+Django is a high-level Python web framework that encourages rapid development
+and clean, pragmatic design. Thanks for checking it out.
+
+All documentation is in the "``docs``" directory and online at
+https://docs.djangoproject.com/en/stable/. If you're just getting started,
+here's how we recommend you read the docs:
+
+* First, read ``docs/intro/install.txt`` for instructions on installing Django.
+
+* Next, work through the tutorials in order (``docs/intro/tutorial01.txt``,
+ ``docs/intro/tutorial02.txt``, etc.).
+
+* If you want to set up an actual deployment server, read
+ ``docs/howto/deployment/index.txt`` for instructions.
+
+* You'll probably want to read through the topical guides (in ``docs/topics``)
+ next; from there you can jump to the HOWTOs (in ``docs/howto``) for specific
+ problems, and check out the reference (``docs/ref``) for gory details.
+
+* See ``docs/README`` for instructions on building an HTML version of the docs.
+
+Docs are updated rigorously. If you find any problems in the docs, or think
+they should be clarified in any way, please take 30 seconds to fill out a
+ticket here: https://code.djangoproject.com/newticket
+
+To get more help:
+
+* Join the ``#django`` channel on ``irc.libera.chat``. Lots of helpful people
+ hang out there. `Webchat is available `_.
+
+* Join the `Django Discord community `_.
+
+* Join the community on the `Django Forum `_.
+
+To contribute to Django:
+
+* Check out https://docs.djangoproject.com/en/dev/internals/contributing/ for
+ information about getting involved.
+
+To run Django's test suite:
+
+* Follow the instructions in the "Unit tests" section of
+ ``docs/internals/contributing/writing-code/unit-tests.txt``, published online at
+ https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/unit-tests/#running-the-unit-tests
+
+Supporting the Development of Django
+====================================
+
+Django's development depends on your contributions.
+
+If you depend on Django, remember to support the Django Software Foundation: https://www.djangoproject.com/fundraising/
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/RECORD b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/RECORD
new file mode 100644
index 00000000..aa36458f
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/RECORD
@@ -0,0 +1,4553 @@
+../../../bin/django-admin,sha256=zOpmk5ZVd4a1Nt_wwmEIlGr6hPPpOAOBy6RjQG2WeBU,295
+django-5.2.8.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+django-5.2.8.dist-info/METADATA,sha256=r5ouKo6RLpYTzutGk96T5hGrvLqtVhItITlg4eRcfZ0,4115
+django-5.2.8.dist-info/RECORD,,
+django-5.2.8.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django-5.2.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
+django-5.2.8.dist-info/entry_points.txt,sha256=hi1U04jQDqr9xaV6Gklnqh-d69jiCZdS73E0l_671L4,82
+django-5.2.8.dist-info/licenses/LICENSE,sha256=uEZBXRtRTpwd_xSiLeuQbXlLxUbKYSn5UKGM0JHipmk,1552
+django-5.2.8.dist-info/licenses/LICENSE.python,sha256=dl4rHjOf740-nxKJLn4HKovjCZlqC-Q__FeWOY7E59Q,14256
+django-5.2.8.dist-info/top_level.txt,sha256=V_goijg9tfO20ox_7os6CcnPvmBavbxu46LpJiNLwjA,7
+django/__init__.py,sha256=STOLKt_1TA2lMcdjIUzOm8GcTn045T2btTXfsdtRw0s,799
+django/__main__.py,sha256=XO-CRvbZFCKtIvAT6Jvbn32dWnv2pnNszRVS-1nKX0I,212
+django/__pycache__/__init__.cpython-311.pyc,,
+django/__pycache__/__main__.cpython-311.pyc,,
+django/__pycache__/shortcuts.cpython-311.pyc,,
+django/apps/__init__.py,sha256=8WZTI_JnNuP4tyfuimH3_pKQYbDAy2haq-xkQT1UXkc,90
+django/apps/__pycache__/__init__.cpython-311.pyc,,
+django/apps/__pycache__/config.cpython-311.pyc,,
+django/apps/__pycache__/registry.cpython-311.pyc,,
+django/apps/config.py,sha256=1Zhxt4OrwRnOmsT_B_BurImz3oi8330TJG0rRRJ58bQ,11482
+django/apps/registry.py,sha256=rdexON5JuhKAMWAZv4k2DH0fRSKdPZoi6_tTjOUgFRA,17693
+django/conf/__init__.py,sha256=z-39ierCs_8FYomobh9PWESoZI5RJ-TgzEuew8B9kJM,9809
+django/conf/__pycache__/__init__.cpython-311.pyc,,
+django/conf/__pycache__/global_settings.cpython-311.pyc,,
+django/conf/app_template/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/app_template/admin.py-tpl,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
+django/conf/app_template/apps.py-tpl,sha256=jrRjsh9lSkUvV4NnKdlAhLDtvydwBNjite0w2J9WPtI,171
+django/conf/app_template/migrations/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/app_template/models.py-tpl,sha256=Vjc0p2XbAPgE6HyTF6vll98A4eDhA5AvaQqsc4kQ9AQ,57
+django/conf/app_template/tests.py-tpl,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
+django/conf/app_template/views.py-tpl,sha256=xc1IQHrsij7j33TUbo-_oewy3vs03pw_etpBWaMYJl0,63
+django/conf/global_settings.py,sha256=lVUBoRcyOo_Qvk62zXpnRO2Spfo0RLaskgCZvPFzYvw,23026
+django/conf/locale/__init__.py,sha256=QHDK8QIAcRjGMtWL8QVgYA_6psetuZuWBJkPwumTeI8,13864
+django/conf/locale/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/af/LC_MESSAGES/django.mo,sha256=Puafv8AlIDa6EMSa2A6_LYsjOjAd8p9J2F89UYNiR_Q,27466
+django/conf/locale/af/LC_MESSAGES/django.po,sha256=L3vsRiiwNQKsjPBZOx9GVJ0IyyA--ScPrp73BWG8h8M,30142
+django/conf/locale/ar/LC_MESSAGES/django.mo,sha256=qBaEPhfJxd2mK1uPH7J06hPI3_leRPsWkVgcKtJSAvQ,35688
+django/conf/locale/ar/LC_MESSAGES/django.po,sha256=MQeB4q0H-uDLurniJP5b2SBOTETAUl9k9NHxtaw0nnU,38892
+django/conf/locale/ar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ar/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ar/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ar/formats.py,sha256=EI9DAiGt1avNY-a6luMnAqKISKGHXHiKE4QLRx7wGHU,696
+django/conf/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=QosXYYYvQjGu13pLrC9LIVwUQXVwdJpIYn7RB9QCJY8,33960
+django/conf/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2iT_sY4XedSSiHagu03OgpYXWNJVaKDwKUfxgEN4k3k,37626
+django/conf/locale/ar_DZ/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ar_DZ/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ar_DZ/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ar_DZ/formats.py,sha256=T84q3oMKng-L7_xymPqYwpzs78LvvfHy2drfSRj8XjE,901
+django/conf/locale/ast/LC_MESSAGES/django.mo,sha256=XSStt50HP-49AJ8wFcnbn55SLncJCsS2lx_4UwK-h-8,15579
+django/conf/locale/ast/LC_MESSAGES/django.po,sha256=7qZUb5JjfrWLqtXPRjpNOMNycbcsEYpNO-oYmazLTk4,23675
+django/conf/locale/az/LC_MESSAGES/django.mo,sha256=8fNJr9H6euTssADNXloq7oAN8p2soZ-bEEORdgwptRc,28598
+django/conf/locale/az/LC_MESSAGES/django.po,sha256=u1ePWnAe1MiFTRoeBXkQBzGJcqd2RCv-HQ7umnuZGNA,30901
+django/conf/locale/az/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/az/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/az/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/az/formats.py,sha256=JQoS2AYHKJxiH6TJas1MoeYgTeUv5XcNtYUHF7ulDmw,1087
+django/conf/locale/be/LC_MESSAGES/django.mo,sha256=QmiXFTHCw6I2edmoY0RmAIZRXgnJvLQ6sEbII4beuAI,37607
+django/conf/locale/be/LC_MESSAGES/django.po,sha256=6kyXAGZDKP6XIL-WGjIfwwW3QT0xyFaIJzINrrkDOoo,40228
+django/conf/locale/bg/LC_MESSAGES/django.mo,sha256=x22bBhceDhNZXSoXiTKnc7w_HvtmW3EfWrZgsomUv6A,34729
+django/conf/locale/bg/LC_MESSAGES/django.po,sha256=xTU8GIhvPPuU7K4G8lZq8FXFsWiloT2u-118KtxkxBc,37283
+django/conf/locale/bg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/bg/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/bg/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/bg/formats.py,sha256=LC7P_5yjdGgsxLQ_GDtC8H2bz9NTxUze_CAtzlm37TA,705
+django/conf/locale/bn/LC_MESSAGES/django.mo,sha256=sB0RIFrGS11Z8dx5829oOFw55vuO4vty3W4oVzIEe8Q,16660
+django/conf/locale/bn/LC_MESSAGES/django.po,sha256=rF9vML3LDOqXkmK6R_VF3tQaFEoZI7besJAPx5qHNM0,26877
+django/conf/locale/bn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/bn/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/bn/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/bn/formats.py,sha256=jynhZ9XNNuxTXeF7f2FrJYYZuFwlLY58fGfQ6gVs7s8,964
+django/conf/locale/br/LC_MESSAGES/django.mo,sha256=Xow2-sd55CZJsvfF8axtxXNRe27EDwxKixCGelVQ4aU,14009
+django/conf/locale/br/LC_MESSAGES/django.po,sha256=ODCUDdEDAvsOVOAr49YiWT2YQaBZmc-38brdgYWc8Bs,24293
+django/conf/locale/bs/LC_MESSAGES/django.mo,sha256=Xa5QAbsHIdLkyG4nhLCD4UHdCngrw5Oh120abCNdWlA,10824
+django/conf/locale/bs/LC_MESSAGES/django.po,sha256=IB-2VvrQKUivAMLMpQo1LGRAxw3kj-7kB6ckPai0fug,22070
+django/conf/locale/bs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/bs/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/bs/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/bs/formats.py,sha256=760m-h4OHpij6p_BAD2dr3nsWaTb6oR1Y5culX9Gxqw,705
+django/conf/locale/ca/LC_MESSAGES/django.mo,sha256=v6lEJTUbXyEUBsctIdNFOg-Ck5MVFbuz-JgjqkUe32c,27707
+django/conf/locale/ca/LC_MESSAGES/django.po,sha256=16M-EtYLbfKnquh-IPRjWxTdHAqtisDc46Dzo5n-ZMc,30320
+django/conf/locale/ca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ca/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ca/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ca/formats.py,sha256=s7N6Ns3yIqr_KDhatnUvfjbPhUbrhvemB5HtCeodGZo,940
+django/conf/locale/ckb/LC_MESSAGES/django.mo,sha256=TdAtrf3pLp8MCZ2z4f-qd-92nWl1veS9Uwd4epYN_H4,33846
+django/conf/locale/ckb/LC_MESSAGES/django.po,sha256=yMLfZiUXskZ0vHEqPnAXA6I2V8i-UnDL7NpgJ-yXKl8,36126
+django/conf/locale/ckb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ckb/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ckb/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ckb/formats.py,sha256=EbmQC-dyQl8EqVQOVGwy1Ra5-P1n-J3UF4K55p3VzOM,728
+django/conf/locale/cs/LC_MESSAGES/django.mo,sha256=7_tvOmbJAdC-A1yk1503fdzjBxpwA9QJmfRcyPsmTBw,30186
+django/conf/locale/cs/LC_MESSAGES/django.po,sha256=wDPx3mYbrjmdTJEjNJM9odEpMT3j-xSkHqx1FARKMF0,33138
+django/conf/locale/cs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/cs/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/cs/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/cs/formats.py,sha256=3MA70CW0wfr0AIYvYqE0ACmX79tNOx-ZdlR6Aetp9e8,1539
+django/conf/locale/cy/LC_MESSAGES/django.mo,sha256=s7mf895rsoiqrPrXpyWg2k85rN8umYB2aTExWMTux7s,18319
+django/conf/locale/cy/LC_MESSAGES/django.po,sha256=S-1PVWWVgYmugHoYUlmTFAzKCpI81n9MIAhkETbpUoo,25758
+django/conf/locale/cy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/cy/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/cy/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/cy/formats.py,sha256=NY1pYPfpu7XjLMCCuJk5ggdpLcufV1h101ojyxfPUrY,1355
+django/conf/locale/da/LC_MESSAGES/django.mo,sha256=5rWOqu5hLUynpkxuz3kxDk1v3kZ73YpcjjhMnZ-Nb5g,27818
+django/conf/locale/da/LC_MESSAGES/django.po,sha256=Bu-OYUJEUWfYhGTXV8_rdj8zrbc5okbHVO3CfeNg9hQ,30255
+django/conf/locale/da/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/da/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/da/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/da/formats.py,sha256=-y3033Fo7COyY0NbxeJVYGFybrnLbgXtRf1yBGlouys,876
+django/conf/locale/de/LC_MESSAGES/django.mo,sha256=ioLqpsxhAwxudcfc0oVHztucCnc224g4W7mhFlCwKrE,29046
+django/conf/locale/de/LC_MESSAGES/django.po,sha256=vuIzIMRmlxsD4Y1aufXOHXaK36t8Y01wlshxZk_lEFE,31677
+django/conf/locale/de/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/de/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/de/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/de/formats.py,sha256=fysX8z5TkbPUWAngoy_sMeFGWp2iaNU6ftkBz8cqplg,996
+django/conf/locale/de_CH/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/de_CH/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/de_CH/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/de_CH/formats.py,sha256=Buo2pK5jFsnfUzbEoasOI4XbntRSgXLz1BMJ7aAVXlk,1187
+django/conf/locale/dsb/LC_MESSAGES/django.mo,sha256=EfsEJ_6a4G8SsJSX3Gr4GFZCaIB_39V_TLZbvRuJdMY,30738
+django/conf/locale/dsb/LC_MESSAGES/django.po,sha256=jY1uYogT8DY7_hMie1CSft85fW-QjrX_PiuEnO7X5lc,33262
+django/conf/locale/el/LC_MESSAGES/django.mo,sha256=P5lTOPFcl9x6_j69ZN3hM_mQbhW7Fbbx02RtTNJwfS0,33648
+django/conf/locale/el/LC_MESSAGES/django.po,sha256=rZCComPQcSSr8ZDLPgtz958uBeBZsmV_gEP-sW88kRA,37123
+django/conf/locale/el/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/el/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/el/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/el/formats.py,sha256=RON2aqQaQK3DYVF_wGlBQJDHrhANxypcUW_udYKI-ro,1241
+django/conf/locale/en/LC_MESSAGES/django.mo,sha256=mVpSj1AoAdDdW3zPZIg5ZDsDbkSUQUMACg_BbWHGFig,356
+django/conf/locale/en/LC_MESSAGES/django.po,sha256=OWvHCX5XOOPznprddgycvtmmexfZymD4ab_YBcwKpUc,30411
+django/conf/locale/en/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/en/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/en/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/en/formats.py,sha256=VTQUhaZ_WFhS5rQj0PxbnoMySK0nzUSqrd6Gx-DtXxI,2438
+django/conf/locale/en_AU/LC_MESSAGES/django.mo,sha256=SntsKx21R2zdjj0D73BkOXGTDnoN5unsLMJ3y06nONM,25633
+django/conf/locale/en_AU/LC_MESSAGES/django.po,sha256=6Qh4Z6REzhUdG5KwNPNK9xgLlgq3VbAJuoSXyd_eHdE,28270
+django/conf/locale/en_AU/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/en_AU/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/en_AU/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/en_AU/formats.py,sha256=BoI5UviKGZ4TccqLmxpcdMf0Yk1YiEhY_iLQUddjvi0,1650
+django/conf/locale/en_CA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/en_CA/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/en_CA/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/en_CA/formats.py,sha256=joB2Dy7XYhlii_PBJfuzHNLbOPmRXW2JjYkmxFr6KxI,1166
+django/conf/locale/en_GB/LC_MESSAGES/django.mo,sha256=jSIe44HYGfzQlPtUZ8tWK2vCYM9GqCKs-CxLURn4e1o,12108
+django/conf/locale/en_GB/LC_MESSAGES/django.po,sha256=PTXvOpkxgZFRoyiqftEAuMrFcYRLfLDd6w0K8crN8j4,22140
+django/conf/locale/en_GB/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/en_GB/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/en_GB/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/en_GB/formats.py,sha256=cJN8YNthkIOHCIMnwiTaSZ6RCwgSHkjWYMcfw8VFScE,1650
+django/conf/locale/en_IE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/en_IE/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/en_IE/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/en_IE/formats.py,sha256=aKEIT96Y6tzbGHFu3qsFzFc4Qw_uzhNjB69GpmP6qX8,1484
+django/conf/locale/eo/LC_MESSAGES/django.mo,sha256=TPgHTDrh1amnOQjA7sY-lQvicdFewMutOfoptV3OKkU,27676
+django/conf/locale/eo/LC_MESSAGES/django.po,sha256=IPo-3crOWkp5dDQPDAFSzgCbf9OHjWB1zE3mklhTexk,30235
+django/conf/locale/eo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/eo/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/eo/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/eo/formats.py,sha256=zIEAk-SiLX0cvQVmRc3LpmV69jwRrejMMdC7vtVsSh0,1715
+django/conf/locale/es/LC_MESSAGES/django.mo,sha256=FvuEwc40Dr4HBjYMi9SeA7rZC8qUBl7GCuNyJR7UJN8,29315
+django/conf/locale/es/LC_MESSAGES/django.po,sha256=Dk7g9UJ_64hBLLooHwdqhSPSeK1HyuP_m_gKILGFBh0,33456
+django/conf/locale/es/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es/formats.py,sha256=7SusO1dPErY68h5g4lpxvPbsJYdrbTcr_0EX7uDKYNo,978
+django/conf/locale/es_AR/LC_MESSAGES/django.mo,sha256=HtNMHLmI3ghvieI4wZ_QvZI01Wfb68ukh9g0V4ufw_0,29693
+django/conf/locale/es_AR/LC_MESSAGES/django.po,sha256=Ea_vkNcTWZTukV-lCkG5wLR1xKqIokMeT0yfuxDFUss,32099
+django/conf/locale/es_AR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es_AR/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es_AR/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es_AR/formats.py,sha256=4qgOJoR2K5ZE-pA2-aYRwFW7AbK-M9F9u3zVwgebr2w,935
+django/conf/locale/es_CO/LC_MESSAGES/django.mo,sha256=ehUwvqz9InObH3fGnOLuBwivRTVMJriZmJzXcJHsfjc,18079
+django/conf/locale/es_CO/LC_MESSAGES/django.po,sha256=XRgn56QENxEixlyix3v4ZSTSjo4vn8fze8smkrv_gc4,25107
+django/conf/locale/es_CO/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es_CO/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es_CO/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es_CO/formats.py,sha256=0uAbBvOkdJZKjvhrrd0htScdO7sTgbofOkkC8A35_a8,691
+django/conf/locale/es_MX/LC_MESSAGES/django.mo,sha256=UkpQJeGOs_JQRmpRiU6kQmmYGL_tizL4JQOWb9i35M4,18501
+django/conf/locale/es_MX/LC_MESSAGES/django.po,sha256=M0O6o1f3V-EIY9meS3fXP_c7t144rXWZuERF5XeG5Uo,25870
+django/conf/locale/es_MX/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es_MX/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es_MX/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es_MX/formats.py,sha256=fBvyAqBcAXARptSE3hxwzFYNx3lEE8QrhNrCWuuGNlA,768
+django/conf/locale/es_NI/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es_NI/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es_NI/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es_NI/formats.py,sha256=UiOadPoMrNt0iTp8jZVq65xR_4LkOwp-fjvFb8MyNVg,711
+django/conf/locale/es_PR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/es_PR/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/es_PR/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/es_PR/formats.py,sha256=VVTlwyekX80zCKlg1P4jhaAdKNpN5I64pW_xgrhpyVs,675
+django/conf/locale/es_VE/LC_MESSAGES/django.mo,sha256=h-h1D_Kr-LI_DyUJuIG4Zbu1HcLWTM1s5X515EYLXO8,18840
+django/conf/locale/es_VE/LC_MESSAGES/django.po,sha256=Xj38imu4Yw-Mugwge5CqAqWlcnRWnAKpVBPuL06Twjs,25494
+django/conf/locale/et/LC_MESSAGES/django.mo,sha256=WF00XXoJ3CUXv3Kb3fulOqohNnZ-skw8ysxFChl7iRE,27291
+django/conf/locale/et/LC_MESSAGES/django.po,sha256=BA_paZwRHIGuQOlFI_K2DJex3HzqqVgEb59wnYJPSB0,30074
+django/conf/locale/et/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/et/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/et/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/et/formats.py,sha256=DyFSZVuGSYGoImrRI2FodeM51OtvIcCkKzkI0KvYTQw,707
+django/conf/locale/eu/LC_MESSAGES/django.mo,sha256=EdncCA6Qp76DsqkyEYygaZFrnKRYzJ6LEucQqIjCsSM,21725
+django/conf/locale/eu/LC_MESSAGES/django.po,sha256=6T-yCAeg_8ntlqD_KJyjbqY0qgKPTwi3J46j0J6Ld1I,27752
+django/conf/locale/eu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/eu/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/eu/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/eu/formats.py,sha256=-PuRA6eHeXP8R3YV0aIEQRbk2LveaZk-_kjHlBT-Drg,749
+django/conf/locale/fa/LC_MESSAGES/django.mo,sha256=LYvQ62l6bh4dNFs_0HbNfns8yHR43PY4QRXuIA9DGak,31192
+django/conf/locale/fa/LC_MESSAGES/django.po,sha256=sv9E-sduhwOPnGA2ukxpHUEio8WJz-_rFPZdzO91bi8,34975
+django/conf/locale/fa/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fa/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fa/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fa/formats.py,sha256=v0dLaIh6-CWCAQHkmX0PaIlA499gTeRcJEi7lVJzw9o,722
+django/conf/locale/fi/LC_MESSAGES/django.mo,sha256=tXC36z4kP4b07YcfJxKRty83woT7AGmcJ_5iiDA4UUg,28122
+django/conf/locale/fi/LC_MESSAGES/django.po,sha256=k5DKhyy27Tv-44Tf-DWD8EszkBemDn3O5dQ-F2nh2tQ,30563
+django/conf/locale/fi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fi/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fi/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fi/formats.py,sha256=CO_wD5ZBHwAVgjxArXktLCD7M-PPhtHbayX_bBKqhlA,1213
+django/conf/locale/fr/LC_MESSAGES/django.mo,sha256=GVye4K2_wgoutRkInLS0PLD38z1b15wNdh4DIowBaEA,30309
+django/conf/locale/fr/LC_MESSAGES/django.po,sha256=xdJHJ4m-a0JkN2AOTeP1t__DuSiSnp6-7NdE0zXC9X4,32928
+django/conf/locale/fr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fr/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fr/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fr/formats.py,sha256=0uO3NMUAc2rRZOtr9SMJgFHTNNhr8t2xrGruVBRHTmw,938
+django/conf/locale/fr_BE/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fr_BE/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fr_BE/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fr_BE/formats.py,sha256=DB7W-i5BYeRjMRGWMWmm5oK4FNOTy4H4LL_xx6Ztk00,1154
+django/conf/locale/fr_CA/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fr_CA/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fr_CA/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fr_CA/formats.py,sha256=uSZ4s7XJmcutcbx51DVRu2Sh9ZkOhlTU1RHI37NQqQs,1171
+django/conf/locale/fr_CH/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fr_CH/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fr_CH/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fr_CH/formats.py,sha256=N9SSj2pSgAxNRUaSXVd2fIjt59aorlCtI7oqajf24CU,1320
+django/conf/locale/fy/LC_MESSAGES/django.mo,sha256=9P7zoJtaYHfXly8d6zBoqkxLM98dO8uI6nmWtsGu-lM,2286
+django/conf/locale/fy/LC_MESSAGES/django.po,sha256=jveK-2MjopbqC9jWcrYbttIb4DUmFyW1_-0tYaD6R0I,19684
+django/conf/locale/fy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/fy/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/fy/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/fy/formats.py,sha256=mJXj1dHUnO883PYWPwuI07CNbjmnfBTQVRXZMg2hmOk,658
+django/conf/locale/ga/LC_MESSAGES/django.mo,sha256=AE9Vz07y6hXsV3gP-E3uboUU1nWLREpQYUBhKXI0UZY,31429
+django/conf/locale/ga/LC_MESSAGES/django.po,sha256=3biGJaUwzLN_q9b1Pe3_lpQ4-zlT8qEGhCGIU1bMzGo,34517
+django/conf/locale/ga/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ga/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ga/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ga/formats.py,sha256=Qh7R3UMfWzt7QIdMZqxY0o4OMpVsqlchHK7Z0QnDWds,682
+django/conf/locale/gd/LC_MESSAGES/django.mo,sha256=2VKzI7Nqd2NjABVQGdcduWHjj0h2b3UBGQub7xaTVPs,30752
+django/conf/locale/gd/LC_MESSAGES/django.po,sha256=3PfuhhmosuarfPjvM2TVf2kHhZaw5_G8oIM2VWTc3gI,33347
+django/conf/locale/gd/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/gd/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/gd/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/gd/formats.py,sha256=7doL7JIoCqA_o-lpCwM3jDHMpptA3BbSgeLRqdZk8Lc,715
+django/conf/locale/gl/LC_MESSAGES/django.mo,sha256=Yn4yjNhJ8XkZAFL7IJNroBnSiA3Ag21TqCDUhwsJ9_A,28484
+django/conf/locale/gl/LC_MESSAGES/django.po,sha256=M2vvaFE1tkIsg8M6ixYPjk0IUrhN_r-kYt2NS0CSjEw,30945
+django/conf/locale/gl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/gl/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/gl/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/gl/formats.py,sha256=ygSFv-YTS8htG_LW0awegkkOarPRTZNPbUck5sxkAwI,757
+django/conf/locale/he/LC_MESSAGES/django.mo,sha256=qUMkR_MoqpY5D8GkHOBB4dccDumRg1YuccPOIZudZj4,31336
+django/conf/locale/he/LC_MESSAGES/django.po,sha256=FiZkX1xR5ynrLsydGPQYgvy6SV67E2saYD5fg_CdUKA,34069
+django/conf/locale/he/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/he/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/he/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/he/formats.py,sha256=M-tu-LmTZd_oYPNH6CZEsdxJN526RUOfnLHlQxRL0N0,712
+django/conf/locale/hi/LC_MESSAGES/django.mo,sha256=8pV5j5q8VbrxdVkcS0qwhVx6DmXRRXPKfRsm3nWhI2g,19712
+django/conf/locale/hi/LC_MESSAGES/django.po,sha256=DPV-I1aXgIiZB7zHdEgAHShZFyb9zlNmMXlyjH5ug0I,29221
+django/conf/locale/hi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/hi/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/hi/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/hi/formats.py,sha256=JArVM9dMluSP-cwpZydSVXHB5Vs9QKyR9c-bftI9hds,684
+django/conf/locale/hr/LC_MESSAGES/django.mo,sha256=HP4PCb-i1yYsl5eqCamg5s3qBxZpS_aXDDKZ4Hlbbcc,19457
+django/conf/locale/hr/LC_MESSAGES/django.po,sha256=qeVJgKiAv5dKR2msD2iokSOApZozB3Gp0xqzC09jnvs,26329
+django/conf/locale/hr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/hr/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/hr/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/hr/formats.py,sha256=F4mIdDoaOYJ_lPmsJ_6bQo4Zj8pOSVwuldm92zRy4Fo,1723
+django/conf/locale/hsb/LC_MESSAGES/django.mo,sha256=RdjIoabY6Q4vgWDsHlZljvBfJIOl7e3Qrf8U0CXr4Gc,30397
+django/conf/locale/hsb/LC_MESSAGES/django.po,sha256=jzwnMODbjhMaOTBN7gesEwlAHrXk_J-dbdeX9xmQLZ0,32893
+django/conf/locale/hu/LC_MESSAGES/django.mo,sha256=i2qW6f16t6-GVzyU71954BTmABcb9RbINi61hqiFZYE,29058
+django/conf/locale/hu/LC_MESSAGES/django.po,sha256=jLhOhdi5Eq0N62TOiJNX4jcT4mbVOgwIYdcpxlP30lI,31757
+django/conf/locale/hu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/hu/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/hu/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/hu/formats.py,sha256=xAD7mNsC5wFA2_KGRbBMPKwj884pq0jCKmXhEenGAEk,1001
+django/conf/locale/hy/LC_MESSAGES/django.mo,sha256=KfmTnB-3ZUKDHeNgLiego2Af0WZoHTuNKss3zE-_XOE,22207
+django/conf/locale/hy/LC_MESSAGES/django.po,sha256=kNKlJ5NqZmeTnnxdqhmU3kXiqT9t8MgAFgxM2V09AIc,28833
+django/conf/locale/ia/LC_MESSAGES/django.mo,sha256=JcrpersrDAoJXrD3AnPYBCQyGJ-6kUzH_Q8StbqmMeE,21428
+django/conf/locale/ia/LC_MESSAGES/django.po,sha256=LG0juYDjf3KkscDxwjY3ac6H1u5BBwGHljW3QWvr1nc,26859
+django/conf/locale/id/LC_MESSAGES/django.mo,sha256=S6duIsFJ3Sz8oh7vJgJLtHNWSyC3fWyBwTYr77Fy5GE,27722
+django/conf/locale/id/LC_MESSAGES/django.po,sha256=0I9fwRwp9HIRNQyJHVRhRX4za5Sg_8EDd-x9mra1Xbs,30121
+django/conf/locale/id/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/id/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/id/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/id/formats.py,sha256=kYyOxWHN3Jyif3rFxLFyBUjTzFUwmuaLrkw5JvGbEz8,1644
+django/conf/locale/ig/LC_MESSAGES/django.mo,sha256=tAZG5GKhEbrUCJtLrUxzmrROe1RxOhep8w-RR7DaDYo,27188
+django/conf/locale/ig/LC_MESSAGES/django.po,sha256=DB_I4JXKMY4M7PdAeIsdqnLSFpq6ImkGPCuY82rNBpY,28931
+django/conf/locale/ig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ig/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ig/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ig/formats.py,sha256=P3IsxhF5rNFZ5nCWUSyJfFLb0V1QdX_Xn-tYdrcll5Q,1119
+django/conf/locale/io/LC_MESSAGES/django.mo,sha256=uI78C7Qkytf3g1A6kVWiri_CbS55jReO2XmRfLTeNs0,14317
+django/conf/locale/io/LC_MESSAGES/django.po,sha256=FyN4ZTfNPV5TagM8NEhRts8y_FhehIPPouh_MfslnWY,23124
+django/conf/locale/is/LC_MESSAGES/django.mo,sha256=1pFU-dTPg2zs87L0ZqFFGS9q-f-XrzTOlhKujlyNL2E,24273
+django/conf/locale/is/LC_MESSAGES/django.po,sha256=76cQ_9DLg1jR53hiKSc1tLUMeKn8qTdPwpHwutEK014,28607
+django/conf/locale/is/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/is/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/is/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/is/formats.py,sha256=scsNfP4vVacxWIoN03qc2Fa3R8Uh5Izr1MqBicrAl3A,688
+django/conf/locale/it/LC_MESSAGES/django.mo,sha256=VjrisfaYSDxB6fm4h2vnIjuS9BVzmBacAVK1XySv_UM,28519
+django/conf/locale/it/LC_MESSAGES/django.po,sha256=r-LFt35zucantQe9gO62lqvA0j05ObCzSzVvCiFHSag,31952
+django/conf/locale/it/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/it/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/it/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/it/formats.py,sha256=KzkSb3KXBwfM3gk2FezyR-W8_RYKpnlFeFuIi5zl-S0,1774
+django/conf/locale/ja/LC_MESSAGES/django.mo,sha256=xW_hqLUdDvWpXrQLj0GPaHTnXux4xnoUPSkNt5LIYQI,30973
+django/conf/locale/ja/LC_MESSAGES/django.po,sha256=Dpus3PzKvl16XXgqFHBek6v5l-FxbhjeMbRgmyU7z7o,33500
+django/conf/locale/ja/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ja/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ja/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ja/formats.py,sha256=COUuaXo5zCSNzEwJ0smjbm9Qj28YNBcGxm8qFCJv4sE,729
+django/conf/locale/ka/LC_MESSAGES/django.mo,sha256=4e8at-KNaxYJKIJd8r6iPrYhEdnaJ1qtPw-QHPMh-Sc,24759
+django/conf/locale/ka/LC_MESSAGES/django.po,sha256=pIgaLU6hXgVQ2WJp1DTFoubI7zHOUkkKMddwV3PTdt8,32088
+django/conf/locale/ka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ka/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ka/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ka/formats.py,sha256=elTGOjS-mxuoSCAKOm8Wz2aLfh4pWvNyClUFcrYq9ng,1861
+django/conf/locale/kab/LC_MESSAGES/django.mo,sha256=x5Kyq2Uf3XNlQP06--4lT8Q1MacA096hZbyMJRrHYIc,7139
+django/conf/locale/kab/LC_MESSAGES/django.po,sha256=DsFL3IzidcAnPoAWIfIbGJ6Teop1yKPBRALeLYrdiFA,20221
+django/conf/locale/kk/LC_MESSAGES/django.mo,sha256=krjcDvA5bu591zcP76bWp2mD2FL1VUl7wutaZjgD668,13148
+django/conf/locale/kk/LC_MESSAGES/django.po,sha256=RgM4kzn46ZjkSDHMAsyOoUg7GdxGiZ-vaEOdf7k0c5A,23933
+django/conf/locale/km/LC_MESSAGES/django.mo,sha256=KuKEIW8vIQE3Jocx-8YAMjWqtl93rqF6BxDN2Mko8yU,7217
+django/conf/locale/km/LC_MESSAGES/django.po,sha256=sRyS5XsPWJ8Xh__sVkyj5oGNWZAS0cMUbTMhAk4DOQs,23101
+django/conf/locale/km/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/km/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/km/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/km/formats.py,sha256=0UMLrZz1aI2sdRPkJ0YzX99co2IV6tldP7pEvGEPdP0,750
+django/conf/locale/kn/LC_MESSAGES/django.mo,sha256=fQ7AD5tUiV_PZFBxUjNPQN79dWBJKqfoYwRdrOaQjU4,17515
+django/conf/locale/kn/LC_MESSAGES/django.po,sha256=fS4Z7L4NGVQ6ipZ7lMHAqAopTBP0KkOc-eBK0IYdbBE,28133
+django/conf/locale/kn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/kn/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/kn/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/kn/formats.py,sha256=X5j9VHIW2XRdeTzDFEyS8tG05OBFzP2R7sEGUQa_INg,680
+django/conf/locale/ko/LC_MESSAGES/django.mo,sha256=aSt-uHWVbFCVrPM-TgiAa8WN-2FgdMCl5ZXtJymtIe8,29171
+django/conf/locale/ko/LC_MESSAGES/django.po,sha256=58n1byFesjIGvoxY77-Z3aOPI6ZqgBrXsqT6kZvRiU0,32094
+django/conf/locale/ko/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ko/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ko/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ko/formats.py,sha256=Yox367v4HPL3N9VoJ1vJ81MpSEljJDlAcLa2kQY-ung,2060
+django/conf/locale/ky/LC_MESSAGES/django.mo,sha256=IBVfwPwaZmaoljMRBGww_wWGMJqbF_IOHHnH2j-yJw8,31395
+django/conf/locale/ky/LC_MESSAGES/django.po,sha256=5ACTPMMbXuPJbU7Rfzs0yZHh3xy483pqo5DwSBQp4s4,33332
+django/conf/locale/ky/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ky/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ky/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ky/formats.py,sha256=QCq7vxAD5fe9VhcjRhG6C3N28jNvdzKR-c-EvDSJ1Pg,1178
+django/conf/locale/lb/LC_MESSAGES/django.mo,sha256=tQSJLQUeD5iUt-eA2EsHuyYqsCSYFtbGdryATxisZsc,8008
+django/conf/locale/lb/LC_MESSAGES/django.po,sha256=GkKPLO3zfGTNync-xoYTf0vZ2GUSAotAjfPSP01SDMU,20622
+django/conf/locale/lt/LC_MESSAGES/django.mo,sha256=cdUzK5RYW-61Upf8Sd8ydAg9wXg21pJaIRWFSKPv17c,21421
+django/conf/locale/lt/LC_MESSAGES/django.po,sha256=Lvpe_xlbxSa5vWEossxBCKryDVT7Lwz0EnuL1kSO6OY,28455
+django/conf/locale/lt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/lt/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/lt/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/lt/formats.py,sha256=C9ScR3gYswT1dQXFedUUnYe6DQPVGAS_nLxs0h2E3dE,1637
+django/conf/locale/lv/LC_MESSAGES/django.mo,sha256=xNhsWh1xWGgTKC2BOyoIBkMzRwqO-bCDaXaklkgFjfA,29204
+django/conf/locale/lv/LC_MESSAGES/django.po,sha256=MZsM94x6fQyw5DulxbPQ_cOaeAtjkEtMHBjnVnag4nQ,32051
+django/conf/locale/lv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/lv/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/lv/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/lv/formats.py,sha256=k8owdq0U7-x6yl8ll1W5VjRoKdp8a1G2enH04G5_nvU,1713
+django/conf/locale/mk/LC_MESSAGES/django.mo,sha256=uQKmcys0rOsRynEa812XDAaeiNTeBMkqhR4LZ_cfdAk,22737
+django/conf/locale/mk/LC_MESSAGES/django.po,sha256=4K11QRb493wD-FM6-ruCxks9_vl_jB59V1c1rx-TdKg,29863
+django/conf/locale/mk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/mk/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/mk/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/mk/formats.py,sha256=xwnJsXLXGogOqpP18u6GozjehpWAwwKmXbELolYV_k4,1451
+django/conf/locale/ml/LC_MESSAGES/django.mo,sha256=MGvV0e3LGUFdVIA-h__BuY8Ckom2dAhSFvAtZ8FiAXU,30808
+django/conf/locale/ml/LC_MESSAGES/django.po,sha256=iLllS6vlCpBNZfy9Xd_2Cuwi_1-Vz9fW4G1lUNOuZ6k,37271
+django/conf/locale/ml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ml/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ml/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ml/formats.py,sha256=ZR7tMdJF0U6K1H95cTqrFH4gop6ZuSQ7vD2h0yKq6mo,1597
+django/conf/locale/mn/LC_MESSAGES/django.mo,sha256=T8B76Nv_h6nCsTENPSAag_oGc67uj-fMy0jfHyQ7WLI,33282
+django/conf/locale/mn/LC_MESSAGES/django.po,sha256=uaXe-9Y8KcNBAij69nU0Id1ABE6q_pyNRhqigKGlzZY,35852
+django/conf/locale/mn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/mn/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/mn/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/mn/formats.py,sha256=fsexJU9_UTig2PS_o11hcEmrbPBS8voI4ojuAVPOd_U,676
+django/conf/locale/mr/LC_MESSAGES/django.mo,sha256=wDaS4FOhKcxM7mhzwItieazQ_qBp97ZaKhTZgETDXt0,27608
+django/conf/locale/mr/LC_MESSAGES/django.po,sha256=6eBOK9ZgqrvD1pdIa3NtXojHx-qw_WJLxtNdCkEelrg,34449
+django/conf/locale/ms/LC_MESSAGES/django.mo,sha256=U4_kzfbYF7u78DesFRSReOIeVbOnq8hi_pReFfHfyUQ,27066
+django/conf/locale/ms/LC_MESSAGES/django.po,sha256=49pG3cykGjVfC9N8WPyskz-m7r6KmQiq5i8MR6eOi54,28985
+django/conf/locale/ms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ms/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ms/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ms/formats.py,sha256=YtOBs6s4j4SOmfB3cpp2ekcxVFoVGgUN8mThoSueCt0,1522
+django/conf/locale/my/LC_MESSAGES/django.mo,sha256=SjYOewwnVim3-GrANk2RNanOjo6Hy2omw0qnpkMzTlM,2589
+django/conf/locale/my/LC_MESSAGES/django.po,sha256=b_QSKXc3lS2Xzb45yVYVg307uZNaAnA0eoXX2ZmNiT0,19684
+django/conf/locale/nb/LC_MESSAGES/django.mo,sha256=qX1Z1F3YXVavlrECVkHXek9tsvJEXbWNrogdjjY3jCg,27007
+django/conf/locale/nb/LC_MESSAGES/django.po,sha256=QQ_adZsyp2BfzcJS-LXnZL0EMmUZLbnHsBB1pRRfV-8,29500
+django/conf/locale/nb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/nb/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/nb/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/nb/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552
+django/conf/locale/ne/LC_MESSAGES/django.mo,sha256=BcK8z38SNWDXXWVWUmOyHEzwk2xHEeaW2t7JwrxehKM,27248
+django/conf/locale/ne/LC_MESSAGES/django.po,sha256=_Kj_i2zMb7JLU7EN7Z7JcUn89YgonJf6agSFCjXa49w,33369
+django/conf/locale/nl/LC_MESSAGES/django.mo,sha256=n4OoqdJ2AIj7wfEBmaQsQAvzUox66eYYZLHD-0nuy24,28038
+django/conf/locale/nl/LC_MESSAGES/django.po,sha256=Yd8q1HkDYm2Uo2dSeuT9AjUHOQtB9oAAh9pg7AaT3gs,30998
+django/conf/locale/nl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/nl/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/nl/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/nl/formats.py,sha256=cKaaOvRdeauORjvuZ1xyVcVsl36J3Zk4FSE-lnx2Xwg,3927
+django/conf/locale/nn/LC_MESSAGES/django.mo,sha256=Ccj8kjvjTefC8H6TuDCOdSrTmtkYXkmRR2V42HBMYo4,26850
+django/conf/locale/nn/LC_MESSAGES/django.po,sha256=oaVJTl0NgZ92XJv9DHdsXVaKAc81ky_R3CA6HljTH-8,29100
+django/conf/locale/nn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/nn/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/nn/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/nn/formats.py,sha256=y1QLE-SG00eHwje0lkAToHtz4t621Rz_HQRyBWCgK8c,1552
+django/conf/locale/os/LC_MESSAGES/django.mo,sha256=LBpf_dyfBnvGOvthpn5-oJuFiSNHrgiVHBzJBR-FxOw,17994
+django/conf/locale/os/LC_MESSAGES/django.po,sha256=WYlAnNYwGFnH76Elnnth6YP2TWA-fEtvV5UinnNj7AA,26278
+django/conf/locale/pa/LC_MESSAGES/django.mo,sha256=H1hCnQzcq0EiSEaayT6t9H-WgONO5V4Cf7l25H2930M,11253
+django/conf/locale/pa/LC_MESSAGES/django.po,sha256=26ifUdCX9fOiXfWvgMkOXlsvS6h6nNskZcIBoASJec4,23013
+django/conf/locale/pl/LC_MESSAGES/django.mo,sha256=VoTIHWbC0XLJqpS4wAea5jiDSQpQ8NfaD3XL7u9c3vg,30719
+django/conf/locale/pl/LC_MESSAGES/django.po,sha256=50d1hkVl8pFesmnjAv2uXRRHogyoqCCdles57H0N7P0,34679
+django/conf/locale/pl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/pl/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/pl/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/pl/formats.py,sha256=KREhPtHuzKS_ZsAqXs5LqYPGhn6O-jLd4WZQ-39BA8I,1032
+django/conf/locale/pt/LC_MESSAGES/django.mo,sha256=l9MiDXs9r9aPQp5hsgkcdWJ-SeGrYGgBTZ5C7y4tECo,22849
+django/conf/locale/pt/LC_MESSAGES/django.po,sha256=Zpu40rUqoJqSFma-34qkNR3hdTZdBJmOu5JWs6wobq8,28737
+django/conf/locale/pt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/pt/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/pt/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/pt/formats.py,sha256=RQ9MuIwUPhiY2u-1hFU2abs9Wqv1qZE2AUAfYVK-NU8,1520
+django/conf/locale/pt_BR/LC_MESSAGES/django.mo,sha256=bpEMyJRffSrEs9OyoE_rLng-Bs2T32zdmagwUKWC3WY,29248
+django/conf/locale/pt_BR/LC_MESSAGES/django.po,sha256=_LkHRkqovTNNH5anC3IpH8pywXdNNY_lTZ2Ym_aWNQQ,33336
+django/conf/locale/pt_BR/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/pt_BR/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/pt_BR/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/pt_BR/formats.py,sha256=J1IKV7cS2YMJ5_qlT9h1dDYUX9tLFvqA95l_GpZTLUY,1285
+django/conf/locale/ro/LC_MESSAGES/django.mo,sha256=9RSlC_3Ipn_Vm31ALaGHsrOA1IKmKJ5sN2m6iy5Hk60,21493
+django/conf/locale/ro/LC_MESSAGES/django.po,sha256=XoGlHKEnGlno_sbUTnbkg9nGkRfPIpxv7Wfm3hHGu9w,28099
+django/conf/locale/ro/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ro/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ro/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ro/formats.py,sha256=e_dp0zyfFfoydrGyn6Kk3DnQIj7RTRuvRc6rQ6tSxzA,928
+django/conf/locale/ru/LC_MESSAGES/django.mo,sha256=1280JC3FOBVCVaK7BE_iru2xYkAYrNxJ-0JYONRzMLA,38784
+django/conf/locale/ru/LC_MESSAGES/django.po,sha256=rVUdVLXGI__l3Ies16FYNDvnYNMGoWavasonYkMXOg0,42155
+django/conf/locale/ru/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ru/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ru/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ru/formats.py,sha256=lTfYbecdSmHCxebog_2bd0N32iD3nEq_f5buh9il-nI,1098
+django/conf/locale/sk/LC_MESSAGES/django.mo,sha256=2UgS2LCSCPEhJV4R2LQXxGw1LvAZMvi6B1ITaVD_x_U,29965
+django/conf/locale/sk/LC_MESSAGES/django.po,sha256=vt-A2Ayh5r-a49x3lLxe8FU7tm-S2YQHRk-N15smi9k,32799
+django/conf/locale/sk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sk/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sk/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sk/formats.py,sha256=bWj0FNpYfOAgi9J-L4VuiN6C_jsgPsKNdLYd9gTnFs0,1051
+django/conf/locale/sl/LC_MESSAGES/django.mo,sha256=1mzO4ZC9IYwbKM7iavLJfb2bYaLaC1UVmm4T37Xil7g,23147
+django/conf/locale/sl/LC_MESSAGES/django.po,sha256=EDR734fFO7UM_F-4Q-psEHc-VF2po7fl6n5akKdWYyY,29440
+django/conf/locale/sl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sl/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sl/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sl/formats.py,sha256=Nq4IfEUnlGebMZeRvB2l9aps-5G5b4y1kQ_3MiJTfe8,1642
+django/conf/locale/sq/LC_MESSAGES/django.mo,sha256=F-aD9n_Z-mvRkF_A7oPgsYB6XyaBKvniBGdHzXFckA4,28772
+django/conf/locale/sq/LC_MESSAGES/django.po,sha256=Z2-A9zXYkrhH2JbNuutX5E7Tq17U1Z4EgSEulkiVXDU,31279
+django/conf/locale/sq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sq/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sq/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sq/formats.py,sha256=SA_jCSNwI8-p79skHoLxrPLZnkyq1PVadwT6gMt7n_M,688
+django/conf/locale/sr/LC_MESSAGES/django.mo,sha256=kDxODAVghPzZzL4TpXJ7kP_Qo8ine8ETuP_471f4d8s,35028
+django/conf/locale/sr/LC_MESSAGES/django.po,sha256=yH1xOGj3gGx6MzB7zGrKOznfPRDW452KdIt9MCMjNKo,37554
+django/conf/locale/sr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sr/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sr/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sr/formats.py,sha256=F3_gYopOXINcllaPFzTqZrZ2oZ1ye3xzR0NQtlqXYp0,1729
+django/conf/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=GHilyEVbIGQt6ItMgQJVk-m6TF8tgHI4rtidYmOwUGI,28715
+django/conf/locale/sr_Latn/LC_MESSAGES/django.po,sha256=FegpyTDYtB-kPG8d8EmK_lK3C7PSxhc2p9xLAZadO74,41466
+django/conf/locale/sr_Latn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sr_Latn/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sr_Latn/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sr_Latn/formats.py,sha256=BDZm-ajQgCIxQ8mCcckEH32IoCN9233TvAOXkg4mc38,1728
+django/conf/locale/sv/LC_MESSAGES/django.mo,sha256=4q_4GPIZvzE7s1C4sgvsx9sSRzKDK24TrAD7q2zp0Ec,27931
+django/conf/locale/sv/LC_MESSAGES/django.po,sha256=qU6W_rowtMYEyxYYfsIL9pyrXtEviohqqYEZmH0yKIU,30957
+django/conf/locale/sv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/sv/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/sv/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/sv/formats.py,sha256=9o8ZtaSq1UOa5y6Du3rQsLAAl5ZOEdVY1OVVMbj02RA,1311
+django/conf/locale/sw/LC_MESSAGES/django.mo,sha256=aUmIVLANgSCTK5Lq8QZPEKWjZWnsnBvm_-ZUcih3J6g,13534
+django/conf/locale/sw/LC_MESSAGES/django.po,sha256=GOE6greXZoLhpccsfPZjE6lR3G4vpK230EnIOdjsgPk,22698
+django/conf/locale/ta/LC_MESSAGES/django.mo,sha256=WeM8tElbcmL11P_D60y5oHKtDxUNWZM9UNgXe1CsRQ4,7094
+django/conf/locale/ta/LC_MESSAGES/django.po,sha256=kgHTFqysEMj1hqktLr-bnL1NRM715zTpiwhelqC232s,22329
+django/conf/locale/ta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ta/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ta/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ta/formats.py,sha256=vmjfiM54oJJxqcdgZJUNNQN7oMS-XLVBYJ4lWBb5ctY,682
+django/conf/locale/te/LC_MESSAGES/django.mo,sha256=Sk45kPC4capgRdW5ImOKYEVxiBjHXsosNyhVIDtHLBc,13259
+django/conf/locale/te/LC_MESSAGES/django.po,sha256=IQxpGTpsKUtBGN1P-KdGwvE7ojNCqKqPXEvYD3qT5A4,25378
+django/conf/locale/te/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/te/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/te/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/te/formats.py,sha256=-HOoZgmnME4--4CuXzcnhXqNma0Wh7Ninof3RCCGZkU,680
+django/conf/locale/tg/LC_MESSAGES/django.mo,sha256=ePzS2pD84CTkHBaiaMyXBxiizxfFBjHdsGH7hCt5p_4,28497
+django/conf/locale/tg/LC_MESSAGES/django.po,sha256=oSKu3YT3griCrDLPqptZmHcuviI99wvlfX6I6nLJnDk,33351
+django/conf/locale/tg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/tg/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/tg/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/tg/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160
+django/conf/locale/th/LC_MESSAGES/django.mo,sha256=SJeeJWbdF-Lae5BendxlyMKqx5zdDmh3GCQa8ER5FyY,18629
+django/conf/locale/th/LC_MESSAGES/django.po,sha256=K4ITjzHLq6DyTxgMAfu3CoGxrTd3aG2J6-ZxQj2KG1U,27507
+django/conf/locale/th/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/th/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/th/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/th/formats.py,sha256=SmCUD-zVgI1QE2HwqkFtAO87rJ-FoCjw1s-2-cfl1h0,1072
+django/conf/locale/tk/LC_MESSAGES/django.mo,sha256=qtFLB9rBkpUDv5LtNAZqkkCKtquMySyg3dzQ8x_Nb-Y,27792
+django/conf/locale/tk/LC_MESSAGES/django.po,sha256=dEjcfeYmvjKbAPFVCmrlh7rVOU90MgiYpoo1cHfPj2E,30232
+django/conf/locale/tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/tk/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/tk/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/tk/formats.py,sha256=TG5TGfLNy4JSjl-QAWk46gIEb0ijdBpqPrDtwfJzshw,1160
+django/conf/locale/tr/LC_MESSAGES/django.mo,sha256=uH2Uu81XQaQeoizE-5eUHIba-V1Mr7q1smGHd0Aug7k,28862
+django/conf/locale/tr/LC_MESSAGES/django.po,sha256=2hMb5M7ZIpp-QIXGox-1OJEVmBUTl4nXErLfhYpeOaY,31453
+django/conf/locale/tr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/tr/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/tr/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/tr/formats.py,sha256=yJg-7hmevD1gvj9iBRMCiYGgd5DxKZcL7T_C3K3ztME,1019
+django/conf/locale/tt/LC_MESSAGES/django.mo,sha256=r554DvdPjD_S8hBRjW8ehccEjEk8h7czQsp46FZZ_Do,14500
+django/conf/locale/tt/LC_MESSAGES/django.po,sha256=W8QgEAH7yXNmjWoF-UeqyVAu5jEMHZ5MXE60e5sawJc,24793
+django/conf/locale/udm/LC_MESSAGES/django.mo,sha256=cIf0i3TjY-yORRAcSev3mIsdGYT49jioTHZtTLYAEyc,12822
+django/conf/locale/udm/LC_MESSAGES/django.po,sha256=n9Az_8M8O5y16yE3iWmK20R9F9VoKBh3jR3iKwMgFlY,23113
+django/conf/locale/ug/LC_MESSAGES/django.mo,sha256=eML-Exb0koE_d6T7JFD7XutA1QRlralN1YDXvhVGnak,35426
+django/conf/locale/ug/LC_MESSAGES/django.po,sha256=JvASi6v4eg23O5qJbqIVuLE-enF3GJSA6rvCaQvsN14,37711
+django/conf/locale/ug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/ug/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/ug/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/ug/formats.py,sha256=qoSAkaWqJ7FW2OTGaZs_CfiMN9PxAVxHecZfwNCzdUo,454
+django/conf/locale/uk/LC_MESSAGES/django.mo,sha256=n1YrNtVEZr75_N5CMcbYZmzxUOMi5miny3GRaMyKKh8,30829
+django/conf/locale/uk/LC_MESSAGES/django.po,sha256=XraKjvG_kJhJ19fNEIKoXt7r19J-l-e8wQoemW6_FBw,36731
+django/conf/locale/uk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/uk/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/uk/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/uk/formats.py,sha256=ZmeYmL0eooFwQgmE054V36RQ469ZTfAv6k8SUJrDYQ8,1241
+django/conf/locale/ur/LC_MESSAGES/django.mo,sha256=jCdCVuf1dv5BEk3xzuBRstDxHz2-xkSd3rl15f2xPI4,12200
+django/conf/locale/ur/LC_MESSAGES/django.po,sha256=nwj0ulflNl_4JcnweumBkGI7jsgNSqr_voguzMMHcCM,24535
+django/conf/locale/uz/LC_MESSAGES/django.mo,sha256=CJSRoHJANkNevG-6QM-TL5VJ9UgS63dWPHeGHan9Ano,26443
+django/conf/locale/uz/LC_MESSAGES/django.po,sha256=u6En3LJg7x7VKsCNff3haprDlsizPxBukfWomKXaMak,29725
+django/conf/locale/uz/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/uz/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/uz/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/uz/formats.py,sha256=cdmqOUBVnPSyi2k9AkOGl27s89PymFePG2gtnYzYbiw,1176
+django/conf/locale/vi/LC_MESSAGES/django.mo,sha256=TMsBzDnf9kZndozqVUnEKtKxfH2N1ajLdrm8hJ4HkYI,17396
+django/conf/locale/vi/LC_MESSAGES/django.po,sha256=tL2rvgunvaN_yqpPSBYAKImFDaFaeqbnpEw_egI11Lo,25342
+django/conf/locale/vi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/vi/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/vi/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/vi/formats.py,sha256=_xIugkqLnjN9dzIhefMpsJXaTPldr4blKSGS-c3swg0,762
+django/conf/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=CZqKOS9yxhbN1BhNHffZdJ3qE1QaeImdW8XUqe5W3bE,26813
+django/conf/locale/zh_Hans/LC_MESSAGES/django.po,sha256=hdRSNf2_CNYcbIil9MvD7TsaZxv90rZJor6ih5AM54M,30108
+django/conf/locale/zh_Hans/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/zh_Hans/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/zh_Hans/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/zh_Hans/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598
+django/conf/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=YCiWKaObQgZS064_ckrkXv99QLyGAiQI1zfIRW2A_2I,26807
+django/conf/locale/zh_Hant/LC_MESSAGES/django.po,sha256=_LJtnSCK6lk8394Gd_8TXaCHfa7zHnVeOi4ujsk6EPE,29060
+django/conf/locale/zh_Hant/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/locale/zh_Hant/__pycache__/__init__.cpython-311.pyc,,
+django/conf/locale/zh_Hant/__pycache__/formats.cpython-311.pyc,,
+django/conf/locale/zh_Hant/formats.py,sha256=iMb9Taj6xQQA3l_NWCC7wUlQuh4YfNUgs2mHcQ6XUEo,1598
+django/conf/project_template/manage.py-tpl,sha256=JDuGG02670bELmn3XLUSxHFZ8VFhqZTT_oN9VbT5Acc,674
+django/conf/project_template/project_name/__init__.py-tpl,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/conf/project_template/project_name/asgi.py-tpl,sha256=q_6Jo5tLy6ba-S7pLs3YTK7byxSBmU0oYylYJlNvwHI,428
+django/conf/project_template/project_name/settings.py-tpl,sha256=WL949LQPZMyvet9W5G1yL9PMcDPZ6RWqbCcjbe9ZozU,3282
+django/conf/project_template/project_name/urls.py-tpl,sha256=5en0vlo3TdXdQquXZVNENrmX2DZJxje156HqcRbySKU,789
+django/conf/project_template/project_name/wsgi.py-tpl,sha256=OCfjjCsdEeXPkJgFIrMml_FURt7msovNUPnjzb401fs,428
+django/conf/urls/__init__.py,sha256=qmpaRi5Gn2uaY9h3g9RNu0z3LDEpEeNL9JlfSLed9s0,292
+django/conf/urls/__pycache__/__init__.cpython-311.pyc,,
+django/conf/urls/__pycache__/i18n.cpython-311.pyc,,
+django/conf/urls/__pycache__/static.cpython-311.pyc,,
+django/conf/urls/i18n.py,sha256=M_lO6q_92QrrPoTY9oui95BQgJfPla9edRNuN5Vc4GM,1166
+django/conf/urls/static.py,sha256=gZOYaiIf3SxQ75N69GyVm9C0OmQv1r1IDrUJ0E7zMe0,908
+django/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admin/__init__.py,sha256=i0TwjHWq6qfZJ0e9pVWAZXxVHZ-eOPewGjtdwHljbOM,1203
+django/contrib/admin/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admin/__pycache__/actions.cpython-311.pyc,,
+django/contrib/admin/__pycache__/apps.cpython-311.pyc,,
+django/contrib/admin/__pycache__/checks.cpython-311.pyc,,
+django/contrib/admin/__pycache__/decorators.cpython-311.pyc,,
+django/contrib/admin/__pycache__/exceptions.cpython-311.pyc,,
+django/contrib/admin/__pycache__/filters.cpython-311.pyc,,
+django/contrib/admin/__pycache__/forms.cpython-311.pyc,,
+django/contrib/admin/__pycache__/helpers.cpython-311.pyc,,
+django/contrib/admin/__pycache__/models.cpython-311.pyc,,
+django/contrib/admin/__pycache__/options.cpython-311.pyc,,
+django/contrib/admin/__pycache__/sites.cpython-311.pyc,,
+django/contrib/admin/__pycache__/tests.cpython-311.pyc,,
+django/contrib/admin/__pycache__/utils.cpython-311.pyc,,
+django/contrib/admin/__pycache__/widgets.cpython-311.pyc,,
+django/contrib/admin/actions.py,sha256=gOSd7rrFjIL1HxDSP8yJ36ie7J9DH06M_wsH9QvSFGM,3181
+django/contrib/admin/apps.py,sha256=BOiulA4tsb3wuAUtLGTGjrbywpSXX0dLo2pUCGV8URw,840
+django/contrib/admin/checks.py,sha256=KkyUfKtosw8cRETN3RSvPO2NOPgdEUjOt1ilnFMYvBM,50474
+django/contrib/admin/decorators.py,sha256=dki7GLFKOPT-mB5rxsYX12rox18BywroxmrzjG_VJXM,3481
+django/contrib/admin/exceptions.py,sha256=VJhzurallXV322hhZklmvp3OmDIZZQpbEOuE-CX7938,507
+django/contrib/admin/filters.py,sha256=xWca0wsA_fGlkgV9mAXA3RipmXvj8EKaumU4f_Kyk9s,27668
+django/contrib/admin/forms.py,sha256=0UCJstmmBfp_c_0AqlALJQYy9bxXo9fqoQQICQONGEo,1023
+django/contrib/admin/helpers.py,sha256=9StpoEjTZH30IP0hRVZJJjGf-nKWfnMwD3enQuPNhII,18620
+django/contrib/admin/locale/af/LC_MESSAGES/django.mo,sha256=GgKqAhO9cxtkT9rw89vM_vvQCJuXU7-dC6C9QPIgcsQ,17709
+django/contrib/admin/locale/af/LC_MESSAGES/django.po,sha256=eJAIkGbwtMY5ukNCkbmFculcUWVuTzZlTZlHElQIkpw,19078
+django/contrib/admin/locale/af/LC_MESSAGES/djangojs.mo,sha256=eD8mj7MPFSc6GEmwpGLs7lE7w0CKc1EuZ2GcEwWRF0U,5390
+django/contrib/admin/locale/af/LC_MESSAGES/djangojs.po,sha256=xBcNbFhUtTYjQfCqfqRDQdsVrgau1_3032-whoiNzCM,6172
+django/contrib/admin/locale/am/LC_MESSAGES/django.mo,sha256=UOwMxYH1r5AEBpu-P9zxHazk3kwI4CtsPosGIYtl6Hs,8309
+django/contrib/admin/locale/am/LC_MESSAGES/django.po,sha256=NmsIZoBEQwyBIqbKjkwCJ2_iMHnMKB87atoT0iuNXrw,14651
+django/contrib/admin/locale/ar/LC_MESSAGES/django.mo,sha256=oRIBJNmuv50Tzbh0H31zVmeqcSL93hGI3MBN7Cyv3ss,21655
+django/contrib/admin/locale/ar/LC_MESSAGES/django.po,sha256=WvwYNfhIcc_5teKdIKn_axnDLLXaJZRJ72mJGXcR6MU,23233
+django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.mo,sha256=xoI2xNKgspuuJe1UCUB9H6Kyp3AGhj5aeo_WEg5e23A,6545
+django/contrib/admin/locale/ar/LC_MESSAGES/djangojs.po,sha256=jwehFDFk3lMIEH43AEU_JyHOm84Seo-OLd5FmGBbaxo,7281
+django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=ipELNNGQYb_nHTEQbUFED8IT26L9c2UXsELf4wk0q6k,19947
+django/contrib/admin/locale/ar_DZ/LC_MESSAGES/django.po,sha256=2mGF2NfofR8WgSJPShF5CrMjECXj0dGFcFaZ2lriulc,21378
+django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.mo,sha256=L3N1U9OFXYZ8OfrvKHLbVvXa40biIDdmon0ZV8BOIvY,6423
+django/contrib/admin/locale/ar_DZ/LC_MESSAGES/djangojs.po,sha256=Atzp95E2dFtSHZHHna0pBCqU_2V7partODX675OBkQs,7206
+django/contrib/admin/locale/ast/LC_MESSAGES/django.mo,sha256=3uffu2zPbQ1rExUsG_ambggq854Vy8HbullkCYdazA4,2476
+django/contrib/admin/locale/ast/LC_MESSAGES/django.po,sha256=wCWFh9viYUhTGOX0mW3fpN2z0kdE6b7IaA-A5zzb3Yo,11676
+django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.mo,sha256=kiG-lzQidkXER5s_6POO1G91mcAv9VAkAXI25jdYBLE,2137
+django/contrib/admin/locale/ast/LC_MESSAGES/djangojs.po,sha256=s4s6aHocTlzGcFi0p7cFGTi3K8AgoPvFCv7-Hji6At0,4085
+django/contrib/admin/locale/az/LC_MESSAGES/django.mo,sha256=QzDkkfJCM4EbiZHVBq-iwmzj-13xc28fGOet58qTyrI,18951
+django/contrib/admin/locale/az/LC_MESSAGES/django.po,sha256=AUfAGJARt8LhmawUm_hINDeb4wE9D7x7qhpPZ_BaCiM,20376
+django/contrib/admin/locale/az/LC_MESSAGES/djangojs.mo,sha256=McTZmAOzeJ1LOqG__9uNKig2tcey369udOV1Xe_LK6Q,5777
+django/contrib/admin/locale/az/LC_MESSAGES/djangojs.po,sha256=T0KeCeUrzjrGvO22VHzdsENPCYjbk78HT34ns7DWhIc,6597
+django/contrib/admin/locale/be/LC_MESSAGES/django.mo,sha256=IjTtpYh76R2vjYeb2-WSJP7P_snmN4VoaDO2DTZrMzg,23272
+django/contrib/admin/locale/be/LC_MESSAGES/django.po,sha256=qZ9BY_ZHMAxjUFP69Hws8mjcj-nXtcFwSqSQ91G3-H8,24592
+django/contrib/admin/locale/be/LC_MESSAGES/djangojs.mo,sha256=avqGXYeIJ38_GO9l41-IR6Iv-SKsiN9GWFHxwm-m0yU,7220
+django/contrib/admin/locale/be/LC_MESSAGES/djangojs.po,sha256=pfq642L1YAYO4O4Dw56AiCMgl_p7R-XUL2bLf6x2DSk,8028
+django/contrib/admin/locale/bg/LC_MESSAGES/django.mo,sha256=fNYcFUCFOnBEH_lR4t80bUN6IwkjS5tIs7xWRNxu80I,22994
+django/contrib/admin/locale/bg/LC_MESSAGES/django.po,sha256=1HZYpZgHwqJsPMwasK1O8zv7mDgX3t-2JTdtV_lzM_w,24461
+django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.mo,sha256=IRQMah9wBmq0g9RZ5hBH_dvQD4Q_pmNG4jJHxCGWwZI,7195
+django/contrib/admin/locale/bg/LC_MESSAGES/djangojs.po,sha256=zv5xU9wS1PCdsmmWaV8txSdY4JduEse7w4iWd3QkzsE,7900
+django/contrib/admin/locale/bn/LC_MESSAGES/django.mo,sha256=I3KUX53ePEC-8x_bwkR5spx3WbJRR8Xf67_2Xrr7Ccg,18585
+django/contrib/admin/locale/bn/LC_MESSAGES/django.po,sha256=UvKCBSa5MuxxZ7U5pRWXH6CEQ9WCJH2cQND0jjBmgpQ,22889
+django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.mo,sha256=t_OiMyPMsR2IdH65qfD9qvQfpWbwFueNuY72XSed2Io,2313
+django/contrib/admin/locale/bn/LC_MESSAGES/djangojs.po,sha256=iFwEJi4k3ULklCq9eQNUhKVblivQPJIoC_6lbyEkotY,4576
+django/contrib/admin/locale/br/LC_MESSAGES/django.mo,sha256=yCuMwrrEB_H44UsnKwY0E87sLpect_AMo0GdBjMZRPs,6489
+django/contrib/admin/locale/br/LC_MESSAGES/django.po,sha256=WMU_sN0ENWgyEbKOm8uVQfTQh9sabvKihtSdMt4XQBM,13717
+django/contrib/admin/locale/br/LC_MESSAGES/djangojs.mo,sha256=n7Yx2k9sAVSNtdY-2Ao6VFsnsx4aiExZ3TF_DnnrKU0,1658
+django/contrib/admin/locale/br/LC_MESSAGES/djangojs.po,sha256=gjg-VapbI9n_827CqNYhbtIQ8W9UcMmMObCsxCzReUU,4108
+django/contrib/admin/locale/bs/LC_MESSAGES/django.mo,sha256=44D550fxiO59Pczu5HZ6gvWEClsfmMuaxQWbA4lCW2M,8845
+django/contrib/admin/locale/bs/LC_MESSAGES/django.po,sha256=FrieR1JB4ssdWwYitJVpZO-odzPBKrW4ZsGK9LA595I,14317
+django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.mo,sha256=SupUK-RLDcqJkpLEsOVjgZOWBRKQMALZLRXGEnA623M,1183
+django/contrib/admin/locale/bs/LC_MESSAGES/djangojs.po,sha256=TOtcfw-Spn5Y8Yugv2OlPoaZ5DRwJjRIl-YKiyU092U,3831
+django/contrib/admin/locale/ca/LC_MESSAGES/django.mo,sha256=Wj8KdBSUuUtebE45FK3kvzl155GdTv4KgecoMxFi0_g,17535
+django/contrib/admin/locale/ca/LC_MESSAGES/django.po,sha256=5s5RIsOY5uL1oQQ5IrOhsOgAWWFZ25vTcYURO2dlR8g,19130
+django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.mo,sha256=HjPaPtF5TZGtRu1P40X2YIuRAoKndwurWE4nlZlc7sE,6075
+django/contrib/admin/locale/ca/LC_MESSAGES/djangojs.po,sha256=G7jxAwjnpvvlGinLWDx_awUBu6XwVrdIFqdxBDMVfJQ,6906
+django/contrib/admin/locale/ckb/LC_MESSAGES/django.mo,sha256=ZVy1U4xWrNSU7lUL2mfdqx9MMQODgbi5B5g7Cea_26M,23234
+django/contrib/admin/locale/ckb/LC_MESSAGES/django.po,sha256=TDGnHwoHvZbYmOvsQEU8rHAgzjp5dY1jAwyu3VGblbo,24560
+django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.mo,sha256=-Czkr04TLjKYmob6CyoJxuS3YcUs7z-I9Sgh6rOyOdc,7671
+django/contrib/admin/locale/ckb/LC_MESSAGES/djangojs.po,sha256=L1r7AcAvTOFO3_uzQ_9oRHEIYAcnDWd_oIIqX133mjU,8392
+django/contrib/admin/locale/cs/LC_MESSAGES/django.mo,sha256=w2IX5ZS8RaBtWWIvlPiAbcUDpmjiFD2ZGiqEkCzBSdc,19004
+django/contrib/admin/locale/cs/LC_MESSAGES/django.po,sha256=ijy86d9djUVhsRGT52tuLbrKRN3ETNQzo8bSxEdlmhs,20670
+django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.mo,sha256=ArA6qnVlUAsj7EugF0GM4XW494VpTEj3Uu__Qu9jIig,6596
+django/contrib/admin/locale/cs/LC_MESSAGES/djangojs.po,sha256=DKsC0k5i9t3i77uxR_h99MOip-fc3JPDIV9EriGr7qw,7587
+django/contrib/admin/locale/cy/LC_MESSAGES/django.mo,sha256=7ifUyqraN1n0hbyTVb_UjRIG1jdn1HcwehugHBiQvHs,12521
+django/contrib/admin/locale/cy/LC_MESSAGES/django.po,sha256=bS_gUoKklZwd3Vs0YlRTt24-k5ure5ObTu-b5nB5qCA,15918
+django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.mo,sha256=fOCA1fXEmJw_QaXEISLkuBhaMnEmP1ssP9lhqdCCC3c,3801
+django/contrib/admin/locale/cy/LC_MESSAGES/djangojs.po,sha256=OVcS-3tlMJS_T58qnZbWLGczHwFyAjbuWr35YwuxAVM,5082
+django/contrib/admin/locale/da/LC_MESSAGES/django.mo,sha256=7_hYoJ5S8Qki7Cff0RLkSIPHtPeHZrtMBBaDF0vIKX8,18049
+django/contrib/admin/locale/da/LC_MESSAGES/django.po,sha256=GUxYk2nbLZ5GmA_ACJYentMSKPYNDfKulg5DymVMe_Q,19457
+django/contrib/admin/locale/da/LC_MESSAGES/djangojs.mo,sha256=FSnUEFocN91NyAaDmEQn7Rsit95EYpTrAeleHu-zREM,5500
+django/contrib/admin/locale/da/LC_MESSAGES/djangojs.po,sha256=tNhgrEX4KTmYSPq7VqPr8aH3Ea8WFxf4CNjakmXkFMs,6415
+django/contrib/admin/locale/de/LC_MESSAGES/django.mo,sha256=8mKmD7YEv2qa88Ey7I_7GO7e_uyoWZOWyUOBcMhbFSY,18262
+django/contrib/admin/locale/de/LC_MESSAGES/django.po,sha256=ps6G5JurHA_x3lFq0-8ejq_JqlviSEW0d9RNwVrukik,20149
+django/contrib/admin/locale/de/LC_MESSAGES/djangojs.mo,sha256=kdve4d181AhGDekHiaxt79iyVWvahp3k9SN3H6Xx_9w,6130
+django/contrib/admin/locale/de/LC_MESSAGES/djangojs.po,sha256=tb25boxPrggqnB7mB2M5iyZ6CEM87PBZNa_JzaOXFF4,6921
+django/contrib/admin/locale/dsb/LC_MESSAGES/django.mo,sha256=JfYepG0p5kaXbQqajK51A7navCp3r1Ng_EK44MMR07o,19107
+django/contrib/admin/locale/dsb/LC_MESSAGES/django.po,sha256=yTLufP5D0AR0Bo5LLxuGqrSYMoZ9tQISgdv1k_OvFGM,20359
+django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.mo,sha256=By541_nnIOLmDekdlPT1TK6zwUhwyW34C-anmGWQiOA,6202
+django/contrib/admin/locale/dsb/LC_MESSAGES/djangojs.po,sha256=8CMYXjuFO9STZz3rfs4Sxd4esFEu1GTeXkafZapAU_0,6970
+django/contrib/admin/locale/el/LC_MESSAGES/django.mo,sha256=54kG_94nJigDgJpZM8Cy58G_AGLdS5csJFEjTTvJBfM,22968
+django/contrib/admin/locale/el/LC_MESSAGES/django.po,sha256=f2gUQtedb0sZCBxAoy3hP2rGXT9ysP5UTOlCBvu2NvI,24555
+django/contrib/admin/locale/el/LC_MESSAGES/djangojs.mo,sha256=cix1Bkj2hYO_ofRvtPDhJ9rBnTR6-cnKCFKpZrsxJ34,6509
+django/contrib/admin/locale/el/LC_MESSAGES/djangojs.po,sha256=R05tMMuQEjVQpioy_ayQgFBlLM4WdwXthkMguW6ga24,7339
+django/contrib/admin/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/admin/locale/en/LC_MESSAGES/django.po,sha256=bFTihRbMdNnasQx7HzUzERlTYFhu6lItoRdgMFeIRvs,25651
+django/contrib/admin/locale/en/LC_MESSAGES/djangojs.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/admin/locale/en/LC_MESSAGES/djangojs.po,sha256=VncMFkFMuX0jMarJQtEfPJ8mMwLeCcr1WETUY79xvGs,8709
+django/contrib/admin/locale/en_AU/LC_MESSAGES/django.mo,sha256=QEvxPxDqNUmq8NxN-8c_F6KMEcWWum3YzERlc3_S_DM,16191
+django/contrib/admin/locale/en_AU/LC_MESSAGES/django.po,sha256=BoVuGaPoGdQcF3zdgGRxrNKSq2XLHTvKfINCyU8t86Y,17548
+django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.mo,sha256=s0qPS8TjODtPo4miSznQfS6M8CQK9URDeMKeQsp7DK4,5001
+django/contrib/admin/locale/en_AU/LC_MESSAGES/djangojs.po,sha256=YecPU6VmUDDNNIzZVl2Wgd6lNRp3msJaW8FhdHMtEyc,5553
+django/contrib/admin/locale/en_GB/LC_MESSAGES/django.mo,sha256=pFkTMRDDj76WA91wtGPjUB7Pq2PN7IJEC54Tewobrlc,11159
+django/contrib/admin/locale/en_GB/LC_MESSAGES/django.po,sha256=REUJMGLGRyDMkqh4kJdYXO9R0Y6CULFVumJ_P3a0nv0,15313
+django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.mo,sha256=hW325c2HlYIIdvNE308c935_IaDu7_qeP-NlwPnklhQ,3147
+django/contrib/admin/locale/en_GB/LC_MESSAGES/djangojs.po,sha256=Ol5j1-BLbtSIDgbcC0o7tg_uHImcjJQmkA4-kSmZY9o,4581
+django/contrib/admin/locale/eo/LC_MESSAGES/django.mo,sha256=zAeGKzSNit2LNNX97WXaARyzxKIasOmTutcTPqpRKAE,14194
+django/contrib/admin/locale/eo/LC_MESSAGES/django.po,sha256=LHoYvbenD9A05EkHtOk8raW7aKyyiqN50d6OHMxnAZY,17258
+django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.mo,sha256=hGXULxueBP24xSZ0StxfFCO0vwZZME7OEERxgnWBqcI,4595
+django/contrib/admin/locale/eo/LC_MESSAGES/djangojs.po,sha256=enHGjcvH_B0Z9K2Vk391qHAKT7QamqUcx8xPzYLQltA,5698
+django/contrib/admin/locale/es/LC_MESSAGES/django.mo,sha256=z7mJ2YUV6e0_odpuukMjoqaDT5RRiLGH5UuwSiJeYn4,19175
+django/contrib/admin/locale/es/LC_MESSAGES/django.po,sha256=QbZ-uxYXVUAB9pzqy3n06O_VqMIdyRBtJX8q_78dPGY,21357
+django/contrib/admin/locale/es/LC_MESSAGES/djangojs.mo,sha256=0Zr6VVh1M5tOG4MmYiEEUZA6GsTRYCwpyiyCmoWBu2c,5831
+django/contrib/admin/locale/es/LC_MESSAGES/djangojs.po,sha256=g-3QQDomaiFFpS7aSE6fueO7Ll4vmNWGOx-WDngXVss,6866
+django/contrib/admin/locale/es_AR/LC_MESSAGES/django.mo,sha256=qXxQAVqtOJgMuZjLfCNlYiuUzRaOaV3HJrOuOxxVtfI,19306
+django/contrib/admin/locale/es_AR/LC_MESSAGES/django.po,sha256=LneQnuXj05NnsJkvN3h4NZjqeNiXUVzTufIQ19K7004,20616
+django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.mo,sha256=wiF10mZhUPy8G5fcMpAqKPKqk-aMhHAoKnRY6yBVMmY,6131
+django/contrib/admin/locale/es_AR/LC_MESSAGES/djangojs.po,sha256=Rl_mJ_AsM-ld2hfS069gm0xuxyd1T34FtIBT-q2iBY8,6871
+django/contrib/admin/locale/es_CO/LC_MESSAGES/django.mo,sha256=0k8kSiwIawYCa-Lao0uetNPLUzd4m_me3tCAVBvgcSw,15156
+django/contrib/admin/locale/es_CO/LC_MESSAGES/django.po,sha256=4T_syIsVY-nyvn5gEAtfN-ejPrJSUpNT2dmzufxaBsE,17782
+django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.mo,sha256=PLS10KgX10kxyy7MUkiyLjqhMzRgkAFGPmzugx9AGfs,3895
+django/contrib/admin/locale/es_CO/LC_MESSAGES/djangojs.po,sha256=Y4bkC8vkJE6kqLbN8t56dR5670B06sB2fbtVzmQygK8,5176
+django/contrib/admin/locale/es_MX/LC_MESSAGES/django.mo,sha256=O8CbY83U4fTvvPPuONtlMx6jpA-qkrYxNTkLuMrWiRQ,11517
+django/contrib/admin/locale/es_MX/LC_MESSAGES/django.po,sha256=8MSKNxhHMp0ksr5AUUAbs_H6MtMjIqkaFwmaJlBxELs,16307
+django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.mo,sha256=2w3CMJFBugP8xMOmXsDU82xUm8cWGRUGZQX5XjiTCpM,3380
+django/contrib/admin/locale/es_MX/LC_MESSAGES/djangojs.po,sha256=OP9cBsdCf3zZAXiKBMJPvY1AHwC_WE1k2vKlzVCtUec,4761
+django/contrib/admin/locale/es_VE/LC_MESSAGES/django.mo,sha256=himCORjsM-U3QMYoURSRbVv09i0P7-cfVh26aQgGnKg,16837
+django/contrib/admin/locale/es_VE/LC_MESSAGES/django.po,sha256=mlmaSYIHpa-Vp3f3NJfdt2RXB88CVZRoPEMfl-tccr0,18144
+django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.mo,sha256=Zy-Hj_Mr2FiMiGGrZyssN7GZJrbxRj3_yKQFZKR36Ro,4635
+django/contrib/admin/locale/es_VE/LC_MESSAGES/djangojs.po,sha256=RI8CIdewjL3bAivniMOl7lA9tD7caP4zEo2WK71cX7c,5151
+django/contrib/admin/locale/et/LC_MESSAGES/django.mo,sha256=-OGEknBvQAJcdZ-6MQBL4TOUyzvplOcXwKqqkUE5IFg,17675
+django/contrib/admin/locale/et/LC_MESSAGES/django.po,sha256=Y0l9bxGkEi8nsirIAw0VkyzbHwMbAaGmZ_0aLKUaLMA,19241
+django/contrib/admin/locale/et/LC_MESSAGES/djangojs.mo,sha256=j38AhwE8uWvn5bVeiXMwo2EHg3azFq192pWsTXw1y0w,4951
+django/contrib/admin/locale/et/LC_MESSAGES/djangojs.po,sha256=KpyLe4R3JG4Ill-9vduLayus83IDnf53k7t1zjP3qag,6084
+django/contrib/admin/locale/eu/LC_MESSAGES/django.mo,sha256=CBk_9H8S8LlK8hfGQsEB7IgSms-BsURzAFrX9Zrsw4c,15009
+django/contrib/admin/locale/eu/LC_MESSAGES/django.po,sha256=9vnPgJRPcdSa4P5rguB5zqWQC1xAt4POzDw-mSD8UHs,17489
+django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.mo,sha256=vKtO_mbexiW-EO-L-G0PYruvc8N7GOF94HWQCkDnJNQ,4480
+django/contrib/admin/locale/eu/LC_MESSAGES/djangojs.po,sha256=BAWU-6kH8PLBxx_d9ZeeueB_lV5KFXjbRJXgKN43nQ4,5560
+django/contrib/admin/locale/fa/LC_MESSAGES/django.mo,sha256=ES3szHZ8iJqlqyHs72AGwwYnsW1FNqIbGhs7JWAQpeE,21031
+django/contrib/admin/locale/fa/LC_MESSAGES/django.po,sha256=c1zhqDswEaZ2-eiNgzY94RYZ98dRyfo-sTU00RR4J-E,23243
+django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.mo,sha256=MAje4ub3vWYhiKrVR_LvxAIqkvOlFpVcXQEBz3ezlPs,6050
+django/contrib/admin/locale/fa/LC_MESSAGES/djangojs.po,sha256=1nzEmRuswDmyCCMShGH2CYdjMY7tUuedfN4kDCEnTCM,6859
+django/contrib/admin/locale/fi/LC_MESSAGES/django.mo,sha256=qXNAKLeJGOXu06lWQH2EjAf88Sz28QkN6Sk169nLP8w,17498
+django/contrib/admin/locale/fi/LC_MESSAGES/django.po,sha256=LnWw3QvvRKL3QIdb73TWvILZPSO5u7AXOO2w_SeyPqA,19207
+django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.mo,sha256=7dJwmO361wJAxrRJ3YEeBlJi2r7NXQNOfEeOj_j3uKE,4993
+django/contrib/admin/locale/fi/LC_MESSAGES/djangojs.po,sha256=ze5Z223mNN1lpYNk6WpPgxCRVgK_VMLWDWmNBc-rAz4,6153
+django/contrib/admin/locale/fr/LC_MESSAGES/django.mo,sha256=P609TUMJa9rmp_7yEkgB8TEgl7SZ6GwrAHVcYeH-rb0,19999
+django/contrib/admin/locale/fr/LC_MESSAGES/django.po,sha256=vp35en0d6dP7pNE4HvN0Sla9Pigt1VcnfhgQZH8896g,21373
+django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.mo,sha256=gM98dOd3FGvot4V-RNNbL8FV6TBFTTcB4oEbNx1qjqs,6080
+django/contrib/admin/locale/fr/LC_MESSAGES/djangojs.po,sha256=wqs3ZbFNgkBGbFOmnlE_6TrM2n-TP0Tn1UT6WYsVCmM,6891
+django/contrib/admin/locale/fy/LC_MESSAGES/django.mo,sha256=mWnHXGJUtiewo1F0bsuJCE_YBh7-Ak9gjTpwjOAv-HI,476
+django/contrib/admin/locale/fy/LC_MESSAGES/django.po,sha256=oSKEF_DInUC42Xzhw9HiTobJjE2fLNI1VE5_p6rqnCE,10499
+django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/admin/locale/fy/LC_MESSAGES/djangojs.po,sha256=efBDCcu43j4SRxN8duO5Yfe7NlpcM88kUPzz-qOkC04,2864
+django/contrib/admin/locale/ga/LC_MESSAGES/django.mo,sha256=2Qn62CmOwgNaeLnV6JE2dNVl9tSZaYGGx5NG8X6g6Z0,19428
+django/contrib/admin/locale/ga/LC_MESSAGES/django.po,sha256=00HFcdeQmjvrTyfUz4I8cFM_bYqF5bLX5pwFht-iPO0,20913
+django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.mo,sha256=Cdx01Gpcs6wYEnpSif1r4O9gKj-YL__IXfBaL-Wx0u0,6910
+django/contrib/admin/locale/ga/LC_MESSAGES/djangojs.po,sha256=7u1ncj7NVTb54Yak8wMFqCKHfjtb6EfFouhT2sbQlIg,7828
+django/contrib/admin/locale/gd/LC_MESSAGES/django.mo,sha256=HEqiGvjMp0NnfIS0Z-c1i8SicEtMPIg8LvNMh-SXiPg,18871
+django/contrib/admin/locale/gd/LC_MESSAGES/django.po,sha256=cZWnJyEoyGFLbk_M4-eddTJLKJ0dqTIlIj4w6YwcjJg,20139
+django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.mo,sha256=QA2_hxHGzt_y0U8sAGQaT27IvvyWrehLPKP2X1jAvEs,5904
+django/contrib/admin/locale/gd/LC_MESSAGES/djangojs.po,sha256=KyYGpFHq2E55dK005xzH0I2RD-C2kD6BlJi8bcMjtRA,6540
+django/contrib/admin/locale/gl/LC_MESSAGES/django.mo,sha256=9d68I_DuQ-TG19GnCl99Bibu2MUSk2_pEo3IOiA3d30,18534
+django/contrib/admin/locale/gl/LC_MESSAGES/django.po,sha256=vZeE-lRFnjI0dCkgI6ozIW6IIwThkAVr9q6B5ah3BOA,20058
+django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.mo,sha256=Wu_FNwFkTAyf8XOrp3niAceohPsytb73ujmMFkdQfBg,5587
+django/contrib/admin/locale/gl/LC_MESSAGES/djangojs.po,sha256=sok-lu3tCIv9jEuhY-eEWjC69SUiSEkInpzY8fykdYc,6417
+django/contrib/admin/locale/he/LC_MESSAGES/django.mo,sha256=VZaL7Hch0Z6Tc4rjk7FQvmggs5lb02fOAhASZZqjc4s,19315
+django/contrib/admin/locale/he/LC_MESSAGES/django.po,sha256=ZOGxDZnsChfmb54BCx9aK__EaB3cPdscqK_MjfnCkUs,21094
+django/contrib/admin/locale/he/LC_MESSAGES/djangojs.mo,sha256=E-ZlEnXIeJIkXWcthR9kgNJBzDp6gT7mKKDUpEVqM7k,6893
+django/contrib/admin/locale/he/LC_MESSAGES/djangojs.po,sha256=1tenNpIJmcT5wTRNETkSO7cDlDlL1Mqpnb-klRlHw-s,7809
+django/contrib/admin/locale/hi/LC_MESSAGES/django.mo,sha256=yWjTYyrVxXxwBWgPsC7IJ9IxL_85v378To4PCEEcwuI,13811
+django/contrib/admin/locale/hi/LC_MESSAGES/django.po,sha256=FpKFToDAMsgc1aG6-CVpi5wAxhMQjkZxz_89kCiKmS4,19426
+django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.mo,sha256=yCUHDS17dQDKcAbqCg5q8ualaUgaa9qndORgM-tLCIw,4893
+django/contrib/admin/locale/hi/LC_MESSAGES/djangojs.po,sha256=U9rb5tPMICK50bRyTl40lvn-tvh6xL_6o7xIPkzfKi0,6378
+django/contrib/admin/locale/hr/LC_MESSAGES/django.mo,sha256=3TR3uFcd0pnkDi551WaB9IyKX1aOazH7USxqc0lA0KQ,14702
+django/contrib/admin/locale/hr/LC_MESSAGES/django.po,sha256=qcW7tvZoWZIR8l-nMRexGDD8VlrOD7l5Fah6-ecilMk,17378
+django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.mo,sha256=KR34lviGYh1esCkPE9xcDE1pQ_q-RxK1R2LPjnG553w,3360
+django/contrib/admin/locale/hr/LC_MESSAGES/djangojs.po,sha256=w7AqbYcLtu88R3KIKKKXyRt2gwBBBnr-ulxONWbw01I,4870
+django/contrib/admin/locale/hsb/LC_MESSAGES/django.mo,sha256=Jz72ZNFNAgewJWjKwEHB_Y5wh9peiZbyRVpZxgLa_QI,18884
+django/contrib/admin/locale/hsb/LC_MESSAGES/django.po,sha256=j7TRlgvm8DlTfkZOS1ZoDHBBopycZoqXdQ8IOh3lck8,20138
+django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.mo,sha256=u6mRNus5uz589JK9YAhwQRok4pZ3ZSRKu1fkhoKI2dc,6232
+django/contrib/admin/locale/hsb/LC_MESSAGES/djangojs.po,sha256=AfNvDB2eF3RzYdr7lyMOu5w-pP4XE0x_21eGdziXHUw,7009
+django/contrib/admin/locale/hu/LC_MESSAGES/django.mo,sha256=WXCxQ4oYXpLFnjF4rVz0GLuMFlWym9aY_Em2adOGkMk,18298
+django/contrib/admin/locale/hu/LC_MESSAGES/django.po,sha256=Kab_Fw3nsX60cnlf1-olgqFQOdZsmomkqCqCospnMI4,20172
+django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.mo,sha256=tXeG5F6_Yh6qHmNUNrlgzavH1Wc8NZb3fj4oEW9qE_M,6034
+django/contrib/admin/locale/hu/LC_MESSAGES/djangojs.po,sha256=pvn7ae43zgVp3mpjXPI7_JCqvQLaHZZF7hTasP2uZx0,6854
+django/contrib/admin/locale/hy/LC_MESSAGES/django.mo,sha256=Dcx9cOsYBfbgQgoAQoLhn_cG1d2sKGV6dag4DwnUTaY,18274
+django/contrib/admin/locale/hy/LC_MESSAGES/django.po,sha256=CnQlRZ_DUILMIqVEgUTT2sufAseEKJHHjWsYr_LAqi8,20771
+django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.mo,sha256=ttfGmyEN0-3bM-WmfCge2lG8inubMPOzFXfZrfX9sfw,5636
+django/contrib/admin/locale/hy/LC_MESSAGES/djangojs.po,sha256=jf94wzUOMQaKSBR-77aijQXfdRAqiYSeAQopiT_8Obc,6046
+django/contrib/admin/locale/ia/LC_MESSAGES/django.mo,sha256=SRKlr8RqW8FQhzMsXdA9HNqttO3hc0xf4QdQJd4Dy8c,11278
+django/contrib/admin/locale/ia/LC_MESSAGES/django.po,sha256=pBQLQsMinRNh0UzIHBy3qEW0etUWMhFALu4-h-woFyE,15337
+django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.mo,sha256=28MiqUf-0-p3PIaongqgPQp2F3D54MLAujPslVACAls,3177
+django/contrib/admin/locale/ia/LC_MESSAGES/djangojs.po,sha256=CauoEc8Fiowa8k6K-f9N8fQDle40qsgtXdNPDHBiudQ,4567
+django/contrib/admin/locale/id/LC_MESSAGES/django.mo,sha256=lt25Hw55qJTgwIHZVjz0W6V5yG3-b5HUX6I9cbDD7No,17869
+django/contrib/admin/locale/id/LC_MESSAGES/django.po,sha256=wLvKzsr4VPEflVLlXggboO6XaNCiupKVYYbENGnYh2M,19374
+django/contrib/admin/locale/id/LC_MESSAGES/djangojs.mo,sha256=WKTlGk17sJoYS8vfSLs4iamX8fyHA38r25ixalHn6us,5378
+django/contrib/admin/locale/id/LC_MESSAGES/djangojs.po,sha256=E3Wn2FNb30Bnwzu6mk03z0fMyDvo5jlPJ2tSyCdLRCA,6192
+django/contrib/admin/locale/io/LC_MESSAGES/django.mo,sha256=URiYZQZpROBedC-AkpVo0q3Tz78VfkmwN1W7j6jYpMo,12624
+django/contrib/admin/locale/io/LC_MESSAGES/django.po,sha256=y0WXY7v_9ff-ZbFasj33loG-xWlFO8ttvCB6YPyF7FQ,15562
+django/contrib/admin/locale/io/LC_MESSAGES/djangojs.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464
+django/contrib/admin/locale/io/LC_MESSAGES/djangojs.po,sha256=WLh40q6yDs-8ZG1hpz6kfMQDXuUzOZa7cqtEPDywxG4,2852
+django/contrib/admin/locale/is/LC_MESSAGES/django.mo,sha256=csD3bmz3iQgLLdSqCKOmY_d893147TvDumrpRVoRTY0,16804
+django/contrib/admin/locale/is/LC_MESSAGES/django.po,sha256=tXgb3ARXP5tPa5iEYwwiHscDGfjS5JgIV2BsUX8OnjE,18222
+django/contrib/admin/locale/is/LC_MESSAGES/djangojs.mo,sha256=Z3ujWoenX5yYTAUmHUSCvHcuV65nQmYKPv6Jo9ygx_c,5174
+django/contrib/admin/locale/is/LC_MESSAGES/djangojs.po,sha256=YPf4XqfnpvrS9irAS8O4G0jgU5PCoQ9C-w3MoDipelk,5847
+django/contrib/admin/locale/it/LC_MESSAGES/django.mo,sha256=N_pVjbd3SkV4xtFMvwtlwRWo_ulGR83SzKcPD8wiFgY,18505
+django/contrib/admin/locale/it/LC_MESSAGES/django.po,sha256=hVYj4UvphkCqlFzH6NtyRAZgGewCKNjVnON0vHtxGKY,20338
+django/contrib/admin/locale/it/LC_MESSAGES/djangojs.mo,sha256=jwic05InfrZW6AE0qdIAFKXAU3mm92GXYlgmGGzEr5w,5134
+django/contrib/admin/locale/it/LC_MESSAGES/djangojs.po,sha256=LpmJI8bX08L08IgK9TW2qS8FcKfY-Z825LzzWsUiUVk,6512
+django/contrib/admin/locale/ja/LC_MESSAGES/django.mo,sha256=DIWyUIY_Gf6_QWQlOWet8_uLEMeuzR1FEnL2KCREXk0,19928
+django/contrib/admin/locale/ja/LC_MESSAGES/django.po,sha256=TbJi3o2Y6pbxuWp7z2slauQfkEJcp4QRPOUkmfW6aks,21504
+django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.mo,sha256=lc0HUiU0kwikECmvDOhz4_rBqlF_ot88I_sBqHB35MU,5717
+django/contrib/admin/locale/ja/LC_MESSAGES/djangojs.po,sha256=Sf6TEsLO38dPRVaJ2jSD8DTsvJYp_mvO6-oU6gLR0yM,6494
+django/contrib/admin/locale/ka/LC_MESSAGES/django.mo,sha256=n33wMaQ3bUTJYif0xA8qzIC7mNh7z3M3pZrm23JGho0,18396
+django/contrib/admin/locale/ka/LC_MESSAGES/django.po,sha256=9671xMS7zW5bgE5OmDskZdLcI9fDLL4qZekN0n-y7ZA,23001
+django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.mo,sha256=GlPU3qUavvU0FXPfvCl-8KboYhDOmMsKM-tv14NqOac,5516
+django/contrib/admin/locale/ka/LC_MESSAGES/djangojs.po,sha256=jDpB9c_edcLoFPHFIogOSPrFkssOjIdxtCA_lum8UCs,6762
+django/contrib/admin/locale/kab/LC_MESSAGES/django.mo,sha256=9QKEWgr8YQV17OJ14rMusgV8b79ZgOOsX4aIFMZrEto,3531
+django/contrib/admin/locale/kab/LC_MESSAGES/django.po,sha256=cSOG_HqsNE4tA5YYDd6txMFoUul8d5UKvk77ZhaqOK0,11711
+django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.mo,sha256=nqwZHJdtjHUSFDJmC0nPNyvWcAdcoRcN3f-4XPIItvs,1844
+django/contrib/admin/locale/kab/LC_MESSAGES/djangojs.po,sha256=tF3RH22p2E236Cv6lpIWQxtuPFeWOvJ-Ery3vBUv6co,3713
+django/contrib/admin/locale/kk/LC_MESSAGES/django.mo,sha256=f2WU3e7dOz0XXHFFe0gnCm1MAPCJ9sva2OUnWYTHOJg,12845
+django/contrib/admin/locale/kk/LC_MESSAGES/django.po,sha256=D1vF3nqANT46f17Gc2D2iGCKyysHAyEmv9nBei6NRA4,17837
+django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.mo,sha256=cBxp5pFJYUF2-zXxPVBIG06UNq6XAeZ72uRLwGeLbiE,2387
+django/contrib/admin/locale/kk/LC_MESSAGES/djangojs.po,sha256=Y30fcDpi31Fn7DU7JGqROAiZY76iumoiW9qGAgPCCbU,4459
+django/contrib/admin/locale/km/LC_MESSAGES/django.mo,sha256=eOe9EcFPzAWrTjbGUr-m6RAz2TryC-qHKbqRP337lPY,10403
+django/contrib/admin/locale/km/LC_MESSAGES/django.po,sha256=RSxy5vY2sgC43h-9sl6eomkFvxClvH_Ka4lFiwTvc2I,17103
+django/contrib/admin/locale/km/LC_MESSAGES/djangojs.mo,sha256=Ja8PIXmw6FMREHZhhBtGrr3nRKQF_rVjgLasGPnU95w,1334
+django/contrib/admin/locale/km/LC_MESSAGES/djangojs.po,sha256=LH4h4toEgpVBb9yjw7d9JQ8sdU0WIZD-M025JNlLXAU,3846
+django/contrib/admin/locale/kn/LC_MESSAGES/django.mo,sha256=955iPq05ru6tm_iPFVMebxwvZMtEa5_7GaFG1mPt6HU,9203
+django/contrib/admin/locale/kn/LC_MESSAGES/django.po,sha256=-4YAm0MyhS-wp4RQmo0TzWvqYqmzHFNpIBtdQlg_8Dw,16059
+django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.mo,sha256=kJsCOGf62XOWTKcB9AF6Oc-GqHl2LFtz-qw0spjcU_w,1847
+django/contrib/admin/locale/kn/LC_MESSAGES/djangojs.po,sha256=zzl7QZ5DfdyNWrkIqYlpUcZiTdlZXx_ktahyXqM2-0Q,5022
+django/contrib/admin/locale/ko/LC_MESSAGES/django.mo,sha256=HHnxik7m2HI9jwPMs_nEP1BivenoWf9VwG7XDcqr0QU,19157
+django/contrib/admin/locale/ko/LC_MESSAGES/django.po,sha256=kbbFCX19-imomsdiTe_ZgiyizX0b00VyMQ7QFA0G1HU,21064
+django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.mo,sha256=fH_ANfrg-FKo9WZXYklQVSjmHSBqQRdABLKyP_0pSWs,5418
+django/contrib/admin/locale/ko/LC_MESSAGES/djangojs.po,sha256=iH3gxN9doahPE41NP8pMRX-yljPqS_H45BFp2SkUyVI,6385
+django/contrib/admin/locale/ky/LC_MESSAGES/django.mo,sha256=eg-TnIzJO4h3q_FS2a1LnCs7qOf5dpNJwvRD99ZZ0GQ,20129
+django/contrib/admin/locale/ky/LC_MESSAGES/django.po,sha256=dWxU3yUAKHUGKdVJbRLkS6fJEefPBk2XM0i2INcRPms,21335
+django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.mo,sha256=VuBYBwFwIHC27GFZiHY2_4AB0cME2R0Q3juczjOs3G0,5888
+django/contrib/admin/locale/ky/LC_MESSAGES/djangojs.po,sha256=uMk9CxL1wP45goq2093lYMza7LRuO4XbVo5RRWlsbaE,6432
+django/contrib/admin/locale/lb/LC_MESSAGES/django.mo,sha256=8GGM2sYG6GQTQwQFJ7lbg7w32SvqgSzNRZIUi9dIe6M,913
+django/contrib/admin/locale/lb/LC_MESSAGES/django.po,sha256=PZ3sL-HvghnlIdrdPovNJP6wDrdDMSYp_M1ok6dodrw,11078
+django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/admin/locale/lb/LC_MESSAGES/djangojs.po,sha256=fiMelo6K0_RITx8b9k26X1R86Ck2daQXm86FLJpzt20,2862
+django/contrib/admin/locale/lt/LC_MESSAGES/django.mo,sha256=SpaNUiaGtDlX5qngVj0dWdqNLSin8EOXXyBvRM9AnKg,17033
+django/contrib/admin/locale/lt/LC_MESSAGES/django.po,sha256=tHnRrSNG2ENVduP0sOffCIYQUn69O6zIev3Bb7PjKb0,18497
+django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.mo,sha256=vZtnYQupzdTjVHnWrtjkC2QKNpsca5yrpb4SDuFx0_0,5183
+django/contrib/admin/locale/lt/LC_MESSAGES/djangojs.po,sha256=dMjFClA0mh5g0aNFTyHC8nbYxwmFD0-j-7gCKD8NFnw,5864
+django/contrib/admin/locale/lv/LC_MESSAGES/django.mo,sha256=ozCrkDpZy1m0mIERXXUr0McFMhuIg46H7pnyEuSFllU,18513
+django/contrib/admin/locale/lv/LC_MESSAGES/django.po,sha256=aoS5NPPpKYdt9uj5gOfm-H6n8cABbJNhCgyyG4kNDxw,20086
+django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.mo,sha256=YVRl_54EJrmKlxc_9Zwt59JpSYVG4kYcIqwxubOu1b4,5769
+django/contrib/admin/locale/lv/LC_MESSAGES/djangojs.po,sha256=iq7BB4hrWvP8v4h4oiHi4rpNXkKxb4nY1LpQs0b_XjE,6714
+django/contrib/admin/locale/mk/LC_MESSAGES/django.mo,sha256=xcKetKf7XcO-4vbWEIoI2c40gRE2twuiINaby6ypO7Q,17948
+django/contrib/admin/locale/mk/LC_MESSAGES/django.po,sha256=hx2peq-wztDHtiST_zZ58c7rjZ6jSvDDXhVOTmyUDzI,21063
+django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.mo,sha256=8BkWjadml2f1lDeH-IULdxsogXSK8NpVuu293GvcQc8,4719
+django/contrib/admin/locale/mk/LC_MESSAGES/djangojs.po,sha256=u9mVSzbIgA1uRgV_L8ZOZLelyknoKFvXH0HbBurezf8,6312
+django/contrib/admin/locale/ml/LC_MESSAGES/django.mo,sha256=4Y1KAip3NNsoRc9Zz3k0YFLzes3DNRFvAXWSTBivXDk,20830
+django/contrib/admin/locale/ml/LC_MESSAGES/django.po,sha256=jL9i3kmOnoKYDq2RiF90WCc55KeA8EBN9dmPHjuUfmo,24532
+django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.mo,sha256=COohY0mAHAOkv1eNzLkaGZy8mimXzcDK1EgRd3tTB_E,6200
+django/contrib/admin/locale/ml/LC_MESSAGES/djangojs.po,sha256=NvN0sF_w5tkc3bND4lBtCHsIDLkwqdEPo-8wi2MTQ14,7128
+django/contrib/admin/locale/mn/LC_MESSAGES/django.mo,sha256=4F-sUl2nbogJa9uqKo9i-0Pz5zkxxZaKpnO_TBzohbw,21299
+django/contrib/admin/locale/mn/LC_MESSAGES/django.po,sha256=jWEucuA4qXgy-EPHkQgJtQjxxYj-TWl0Q5rhU6Ae_4Q,23291
+django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.mo,sha256=H7fIPdWTK3_iuC0WRBJdfXN8zO77p7-IzTviEUVQJ2U,5228
+django/contrib/admin/locale/mn/LC_MESSAGES/djangojs.po,sha256=vJIqqVG34Zd7q8-MhTgZcXTtl6gukOSb6egt70AOyAc,5757
+django/contrib/admin/locale/mr/LC_MESSAGES/django.mo,sha256=EjCGk0HN2GVziGRzauuCLc_27nku35v6RS7U2JT-0b8,21226
+django/contrib/admin/locale/mr/LC_MESSAGES/django.po,sha256=S4FBjh2JG08XYvKRTlPBV9vdhqG32TJGkVQn6Tr3RH0,24770
+django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.mo,sha256=2Z5jaGJzpiJTCnhCk8ulCDeAdj-WwR99scdHFPRoHoA,468
+django/contrib/admin/locale/mr/LC_MESSAGES/djangojs.po,sha256=uGe9kH2mwrab97Ue77oggJBlrpzZNckKGRUMU1vaigs,2856
+django/contrib/admin/locale/ms/LC_MESSAGES/django.mo,sha256=Xj5v1F4_m1ZFUn42Rbep9eInxIV-NE-oA_NyfQkbp00,16840
+django/contrib/admin/locale/ms/LC_MESSAGES/django.po,sha256=ykFH-mPbv2plm2NIvKgaj3WVukJ3SquU8nQIAXuOrWA,17967
+django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.mo,sha256=9VY_MrHK-dGOIkucLCyR9psy4o5p4nHd8kN_5N2E-gY,5018
+django/contrib/admin/locale/ms/LC_MESSAGES/djangojs.po,sha256=P4GvM17rlX1Vl-7EbCyfWVasAJBEv_RvgWEvfJqcErA,5479
+django/contrib/admin/locale/my/LC_MESSAGES/django.mo,sha256=xvlgM0vdYxZuA7kPQR7LhrLzgmyVCHAvqaqvFhKX9wY,3677
+django/contrib/admin/locale/my/LC_MESSAGES/django.po,sha256=zdUCYcyq2-vKudkYvFcjk95YUtbMDDSKQHCysmQ-Pvc,12522
+django/contrib/admin/locale/my/LC_MESSAGES/djangojs.mo,sha256=1fS9FfWi8b9NJKm3DBKETmuffsrTX-_OHo9fkCCXzpg,3268
+django/contrib/admin/locale/my/LC_MESSAGES/djangojs.po,sha256=-z1j108uoswi9YZfh3vSIswLXu1iUKgDXNdZNEA0yrA,5062
+django/contrib/admin/locale/nb/LC_MESSAGES/django.mo,sha256=viQKBFH6ospYn2sE-DokVJGGYhSqosTgbNMn5sBVnmM,16244
+django/contrib/admin/locale/nb/LC_MESSAGES/django.po,sha256=x0ANRpDhe1rxxAH0qjpPxRfccCvR73_4g5TNUdJqmrc,17682
+django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.mo,sha256=KwrxBpvwveERK4uKTIgh-DCc9aDLumpHQYh5YroqxhQ,4939
+django/contrib/admin/locale/nb/LC_MESSAGES/djangojs.po,sha256=ygn6a5zkHkoIYMC8Hgup8Uw1tMbZcLGgwwDu3x33M-o,5555
+django/contrib/admin/locale/ne/LC_MESSAGES/django.mo,sha256=yrm85YXwXIli7eNaPyBTtV7y3TxQuH4mokKuHdAja2A,15772
+django/contrib/admin/locale/ne/LC_MESSAGES/django.po,sha256=F8vfWKvSNngkLPZUIwik_qDYu0UAnrWepbI9Z9Iz35g,20400
+django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.mo,sha256=mJdtpLT9k4vDbN9fk2fOeiy4q720B3pLD3OjLbAjmUI,5362
+django/contrib/admin/locale/ne/LC_MESSAGES/djangojs.po,sha256=N91RciTV1m7e8-6Ihod5U2xR9K0vrLoFnyXjn2ta098,6458
+django/contrib/admin/locale/nl/LC_MESSAGES/django.mo,sha256=FKCQ39RbxWddBA-Id8W-hxgH0tkixJkVctP1laEXJEU,18565
+django/contrib/admin/locale/nl/LC_MESSAGES/django.po,sha256=zRaeZKxUZbi-0CL9BBr-X0j5HOJvvrJ94u8jw3sbaaA,20308
+django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.mo,sha256=iWjyDgay1LIiS6C-Zl33inFKxzM2LFQPIWyKEw2x6Is,6122
+django/contrib/admin/locale/nl/LC_MESSAGES/djangojs.po,sha256=xZjgzxEEWMG2ofgSfLNUU0abr9Y_cUpXIHsmjKBGyig,7217
+django/contrib/admin/locale/nn/LC_MESSAGES/django.mo,sha256=yAdb8Yew1ARlnAnvd5gHL7-SDzpkXedBwCSSPEzGCKk,16504
+django/contrib/admin/locale/nn/LC_MESSAGES/django.po,sha256=sFxr3UYzltQRqiotm_d5Qqtf8iLXI0LgCw_V6kYffJ0,17932
+django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.mo,sha256=RsDri1DmCwrby8m7mLWkFdCe6HK7MD7GindOarVYPWc,4939
+django/contrib/admin/locale/nn/LC_MESSAGES/djangojs.po,sha256=koVTt2mmdku1j7SUDRbnug8EThxXuCIF2XPnGckMi7A,5543
+django/contrib/admin/locale/os/LC_MESSAGES/django.mo,sha256=c51PwfOeLU2YcVNEEPCK6kG4ZyNc79jUFLuNopmsRR8,14978
+django/contrib/admin/locale/os/LC_MESSAGES/django.po,sha256=yugDw7iziHto6s6ATNDK4yuG6FN6yJUvYKhrGxvKmcY,18188
+django/contrib/admin/locale/os/LC_MESSAGES/djangojs.mo,sha256=0gMkAyO4Zi85e9qRuMYmxm6JV98WvyRffOKbBVJ_fLQ,3806
+django/contrib/admin/locale/os/LC_MESSAGES/djangojs.po,sha256=skiTlhgUEN8uKk7ihl2z-Rxr1ZXqu5qV4wB4q9qXVq0,5208
+django/contrib/admin/locale/pa/LC_MESSAGES/django.mo,sha256=EEitcdoS-iQ9QWHPbJBK2ajdN56mBi0BzGnVl3KTmU4,8629
+django/contrib/admin/locale/pa/LC_MESSAGES/django.po,sha256=xscRlOkn9Jc8bDsSRM5bzQxEsCLMVsV-Wwin0rfkHDI,16089
+django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.mo,sha256=Hub-6v7AfF-tWhw53abpyhnVHo76h_xBgGIhlGIcS70,1148
+django/contrib/admin/locale/pa/LC_MESSAGES/djangojs.po,sha256=7L8D4qqhq53XG83NJUZNoM8zCCScwMwzsrzzsyO4lHY,4357
+django/contrib/admin/locale/pl/LC_MESSAGES/django.mo,sha256=vEXmLs91RT5SDsHxg0_YPSBD6ebdykzTCssn3wBB3o0,19332
+django/contrib/admin/locale/pl/LC_MESSAGES/django.po,sha256=7mef7t_-rYkMMJqVGADhSasmInQDCYK1e0avjeEA24E,21262
+django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.mo,sha256=tJJS-jnZ4jhlVD-Y4cv6Z8VLpncNsNiG_F8bSeNIMJ0,6243
+django/contrib/admin/locale/pl/LC_MESSAGES/djangojs.po,sha256=NAUXRaDGWCdQUc72ddPHPqGLmgUpTZioG8z192WzAwE,7442
+django/contrib/admin/locale/pt/LC_MESSAGES/django.mo,sha256=aF8pehn470ui8sk_I022G0b-DaaDNN--Am7vlfUq6WA,18774
+django/contrib/admin/locale/pt/LC_MESSAGES/django.po,sha256=Kc9hKjushf9UqBU2h44Ly-5mzJQYC9Oo11SmIzxqkTA,20493
+django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.mo,sha256=i-axQzjqvApQ0LPULaZpvrXTZsaNxsqqU4SFsF6tP_A,4667
+django/contrib/admin/locale/pt/LC_MESSAGES/djangojs.po,sha256=bIWMMsCL2VlZi-XYfRYwYub__w7xI-VX71jQJ12IAeY,6245
+django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.mo,sha256=xiRk7Ywfob6M8dGk8tQBnOgnULhJpOHKRdixLalsfpc,18809
+django/contrib/admin/locale/pt_BR/LC_MESSAGES/django.po,sha256=QtuHiO3ynrjPvBHJK6vdOL0DFYEezoBJfHVRsudL0gI,21479
+django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.mo,sha256=cSaGCaA9Tvzxk1kuuHLGT2QE15551uUcQQYWgY8VKPA,5949
+django/contrib/admin/locale/pt_BR/LC_MESSAGES/djangojs.po,sha256=V9rY6iviDcnSWYGbaIAI9InW_VS8-AYRHtvOVrEmEWs,7227
+django/contrib/admin/locale/ro/LC_MESSAGES/django.mo,sha256=SEbnJ1aQ3m2nF7PtqzKvYYCdvgg_iG5hzrdO_Xxiv_k,15157
+django/contrib/admin/locale/ro/LC_MESSAGES/django.po,sha256=wPfGo9yi3j28cwikkogZ_erQKtUZ9WmzdZ2FuMVugFE,18253
+django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.mo,sha256=voEqSN3JUgJM9vumLxE_QNPV7kA0XOoTktN7E7AYV6o,4639
+django/contrib/admin/locale/ro/LC_MESSAGES/djangojs.po,sha256=SO7FAqNnuvIDfZ_tsWRiwSv91mHx5NZHyR2VnmoYBWY,5429
+django/contrib/admin/locale/ru/LC_MESSAGES/django.mo,sha256=osxihGL11_5P2NrNWt0GJ4ATkO5CrSUFV-7AYfpqGF4,24128
+django/contrib/admin/locale/ru/LC_MESSAGES/django.po,sha256=1mtmOvLJOcfbRn3U06labNSaTenuosOdULSQY4P8P28,25877
+django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.mo,sha256=bWLoAdRzUwqh91O09asma5Kkb81hZu5IDZV_qrvJoKg,7965
+django/contrib/admin/locale/ru/LC_MESSAGES/djangojs.po,sha256=zUkPCDoJBtM3e0jYBydquYD8lcR5ZFw984JUZXm0hKw,9215
+django/contrib/admin/locale/sk/LC_MESSAGES/django.mo,sha256=VLAPa-tiPBobBKyn7Oin1U6Qy-F0Xh6WJclwEBa7AHA,18910
+django/contrib/admin/locale/sk/LC_MESSAGES/django.po,sha256=XqTk04_kcReAjzZB4m7rv3D2trKuKw39HlhCxQ7Owfo,20540
+django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.mo,sha256=sl2PRwXLtikrOiHJ_EEltZivpV5IwT5lmbyfpGCSrLo,6305
+django/contrib/admin/locale/sk/LC_MESSAGES/djangojs.po,sha256=-ZcKl0UxOObVuB_8My20fdjCrV51drP4w-yan3X-RKk,7275
+django/contrib/admin/locale/sl/LC_MESSAGES/django.mo,sha256=rBSsaXNtCo43Cri9Gq_Ueq2IUNMBmzOV6lgMm7xF_p0,15077
+django/contrib/admin/locale/sl/LC_MESSAGES/django.po,sha256=ywIn4PB3xg6Q27NARZ3JRmSvNhcRFKU8nF_gbgA93qg,18281
+django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.mo,sha256=chhBmd2IkeOONuRlRsOnrPAEbS0tlH4w-G8YKVNRsNI,6146
+django/contrib/admin/locale/sl/LC_MESSAGES/djangojs.po,sha256=8mrwhJ1Geg5TEvJY40COC7bZl7cyIecRhLyqLjBqBAQ,6975
+django/contrib/admin/locale/sq/LC_MESSAGES/django.mo,sha256=TjnBVlaEf0HO0__Utcgr-2SnyGG6Lw6QYRmYj6yjcwQ,18247
+django/contrib/admin/locale/sq/LC_MESSAGES/django.po,sha256=QgzzyulFel5dx28KHCvopbbMdsLJSyfry3mF8GKaNJU,19909
+django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.mo,sha256=RKoR8Vy1B2hygTolUKdjIGVdXPnH-E5VvMK5r3lkAak,5682
+django/contrib/admin/locale/sq/LC_MESSAGES/djangojs.po,sha256=uPSheZAzII01ZIrLq6iua2Qkm7oUgLLZGqdDiWMVxIA,6462
+django/contrib/admin/locale/sr/LC_MESSAGES/django.mo,sha256=gnC2uq9fPZrRRI04Jr8cvLxCU9St6JluPk13PWXj7E0,23208
+django/contrib/admin/locale/sr/LC_MESSAGES/django.po,sha256=rgVZ2ukCFe0TF8ifKZdC-BiRT5Ya8ix3hk53jQDwvgg,24552
+django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.mo,sha256=7y-ONe9ozHDPTyw6sVZf5_e6DZvtcFVY20p37wLzKVs,6814
+django/contrib/admin/locale/sr/LC_MESSAGES/djangojs.po,sha256=tqmD6zMNA6HyY45nO8wNU7ZTKNwAfrdeifnfOVAJk78,7648
+django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=fyhceLRR3MhL8CCYTQn4k4t95cpsCeh-UGk7F1cCTXU,18522
+django/contrib/admin/locale/sr_Latn/LC_MESSAGES/django.po,sha256=zemHOPBXqeKXKKoHtXr_YLVdYiSW6_1h6Fufp4pMeyY,33080
+django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.mo,sha256=sjBvAdlw-uoZ2ADihhA-9q2xQ3X8x2BZ3BSNwKBnuls,5724
+django/contrib/admin/locale/sr_Latn/LC_MESSAGES/djangojs.po,sha256=-iyPz2KS3rX3DJhyLpRpbCbJS-jL7uwSElv721mMAyo,6512
+django/contrib/admin/locale/sv/LC_MESSAGES/django.mo,sha256=XFcy2Dr85Pt2MxXEF3-ZVkGGsu4zjzwXCbqpwE07jI4,17996
+django/contrib/admin/locale/sv/LC_MESSAGES/django.po,sha256=esjuhAFK0SqPEdugD6lHu_SkHSs_zdRWstjYHIU1GCU,20006
+django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.mo,sha256=Ap2_10UV2xo-fPd4E4cntnZyvZmV7ueJj3DMWsqSgmc,5510
+django/contrib/admin/locale/sv/LC_MESSAGES/djangojs.po,sha256=dM_Qh2zWOdItz_dNpTR-0ENNj9Ti-WYVXLtBbwmVkSE,6703
+django/contrib/admin/locale/sw/LC_MESSAGES/django.mo,sha256=kiy4ZiBR6SIzF3SIqC3dNLTUDncZ9qjTdiG1AkIuuXk,17698
+django/contrib/admin/locale/sw/LC_MESSAGES/django.po,sha256=Km7ETJkQTpQUyp1r4mEpa3d_rCLbwh4n5DnYF6JLCxc,19082
+django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.mo,sha256=p0pi6-Zg-qsDVMDjNHO4aav3GfJ3tKKhy6MK7mPtC50,3647
+django/contrib/admin/locale/sw/LC_MESSAGES/djangojs.po,sha256=lZFP7Po4BM_QMTj-SXGlew1hqyJApZxu0lxMP-YduHI,4809
+django/contrib/admin/locale/ta/LC_MESSAGES/django.mo,sha256=ZdtNRZLRqquwMk7mE0XmTzEjTno9Zni3mV6j4DXL4nI,10179
+django/contrib/admin/locale/ta/LC_MESSAGES/django.po,sha256=D0TCLM4FFF7K9NqUGXNFE2KfoEzx5IHcJQ6-dYQi2Eg,16881
+django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.mo,sha256=2-37FOw9Bge0ahIRxFajzxvMkAZL2zBiQFaELmqyhhY,1379
+django/contrib/admin/locale/ta/LC_MESSAGES/djangojs.po,sha256=Qs-D7N3ZVzpZVxXtMWKOzJfSmu_Mk9pge5W15f21ihI,3930
+django/contrib/admin/locale/te/LC_MESSAGES/django.mo,sha256=aIAG0Ey4154R2wa-vNe2x8X4fz2L958zRmTpCaXZzds,10590
+django/contrib/admin/locale/te/LC_MESSAGES/django.po,sha256=-zJYrDNmIs5fp37VsG4EAOVefgbBNl75c-Pp3RGBDAM,16941
+django/contrib/admin/locale/te/LC_MESSAGES/djangojs.mo,sha256=VozLzWQwrY-USvin5XyVPtUUKEmCr0dxaWC6J14BReo,1362
+django/contrib/admin/locale/te/LC_MESSAGES/djangojs.po,sha256=HI8IfXqJf4I6i-XZB8ELGyp5ZNr-oi5hW9h7n_8XSaQ,3919
+django/contrib/admin/locale/tg/LC_MESSAGES/django.mo,sha256=gJfgsEn9doTT0erBK77OBDi7_0O7Rb6PF9tRPacliXU,15463
+django/contrib/admin/locale/tg/LC_MESSAGES/django.po,sha256=Wkx7Hk2a9OzZymgrt9N91OL9K5HZXTbpPBXMhyE0pjI,19550
+django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.mo,sha256=SEaBcnnKupXbTKCJchkSu_dYFBBvOTAOQSZNbCYUuHE,5154
+django/contrib/admin/locale/tg/LC_MESSAGES/djangojs.po,sha256=CfUjLtwMmz1h_MLE7c4UYv05ZTz_SOclyKKWmVEP9Jg,5978
+django/contrib/admin/locale/th/LC_MESSAGES/django.mo,sha256=EVlUISdKOvNkGMG4nbQFzSn5p7d8c9zOGpXwoHsHNlY,16394
+django/contrib/admin/locale/th/LC_MESSAGES/django.po,sha256=OqhGCZ87VX-WKdC2EQ8A8WeXdWXu9mj6k8mG9RLZMpM,20187
+django/contrib/admin/locale/th/LC_MESSAGES/djangojs.mo,sha256=ukj5tyDor9COi5BT9oRLucO2wVTI6jZWclOM-wNpXHM,6250
+django/contrib/admin/locale/th/LC_MESSAGES/djangojs.po,sha256=3L5VU3BNcmfiqzrAWK0tvRRVOtgR8Ceg9YIxL54RGBc,6771
+django/contrib/admin/locale/tk/LC_MESSAGES/django.mo,sha256=f51Ug7txuVeDo1WAywl6oi1aVi1ZJrv94rD4svUobm8,2845
+django/contrib/admin/locale/tk/LC_MESSAGES/django.po,sha256=AXMpn9mSO24azMC5CPHqPZRq-cbk6IpPpaF3Ab3K54k,13309
+django/contrib/admin/locale/tr/LC_MESSAGES/django.mo,sha256=_Mr4BwOhbNColpMONLhdMXkjNk8dUZkxUZp4Ycg7tKo,18754
+django/contrib/admin/locale/tr/LC_MESSAGES/django.po,sha256=ZrO_ZfuutjlqmOYuDWKK3XIBwZF9ekSMkdE4sNNxtSw,20262
+django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.mo,sha256=ztEhUjpzv7KgWJKAqt9u-C050mgbAo1IIcqYDWN-54U,5561
+django/contrib/admin/locale/tr/LC_MESSAGES/djangojs.po,sha256=85ZszztzTP8toRtF44lV1wyAk4A-AyeJNw-3I4moS1c,6345
+django/contrib/admin/locale/tt/LC_MESSAGES/django.mo,sha256=ObJ8zwVLhFsS6XZK_36AkNRCeznoJJwLTMh4_LLGPAA,12952
+django/contrib/admin/locale/tt/LC_MESSAGES/django.po,sha256=VDjg5nDrLqRGXpxCyQudEC_n-6kTCIYsOl3izt1Eblc,17329
+django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.mo,sha256=Sz5qnMHWfLXjaCIHxQNrwac4c0w4oeAAQubn5R7KL84,2607
+django/contrib/admin/locale/tt/LC_MESSAGES/djangojs.po,sha256=_Uh3yH_RXVB3PP75RFztvSzVykVq0SQjy9QtTnyH3Qk,4541
+django/contrib/admin/locale/udm/LC_MESSAGES/django.mo,sha256=2Q_lfocM7OEjFKebqNR24ZBqUiIee7Lm1rmS5tPGdZA,622
+django/contrib/admin/locale/udm/LC_MESSAGES/django.po,sha256=L4TgEk2Fm2mtKqhZroE6k_gfz1VC-_dXe39CiJvaOPE,10496
+django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/admin/locale/udm/LC_MESSAGES/djangojs.po,sha256=ZLYr0yHdMYAl7Z7ipNSNjRFIMNYmzIjT7PsKNMT6XVk,2811
+django/contrib/admin/locale/ug/LC_MESSAGES/django.mo,sha256=5dJkiQAaRexFLXHw27M2GXjtmOySpX1nRag2EJ7VkvI,23170
+django/contrib/admin/locale/ug/LC_MESSAGES/django.po,sha256=XRDzxx2FN_FbkvM_aErfMT53OEcOqy0woLzrpD3yH3k,24491
+django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.mo,sha256=z8R6krF81PE4MBcawodz59saJ-9lwK28vR03Pi_ox1w,6777
+django/contrib/admin/locale/ug/LC_MESSAGES/djangojs.po,sha256=AJKHmZ80xYv0MjlduaPqEaxsqAHaGNcu1C6ujN2V7DM,7437
+django/contrib/admin/locale/uk/LC_MESSAGES/django.mo,sha256=F1cHzLdOkPVUeRrJtAXFjq4zEprIMHmN_RrzY_Zr2q4,22515
+django/contrib/admin/locale/uk/LC_MESSAGES/django.po,sha256=wto-HVDzYxz9MYcNrrm4IC1aQugng7dRR9V6i70hWsk,24804
+django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.mo,sha256=mC4E13RjlLqAtsIDCtimSqW96IOIcYIgiD2ddggzFtw,5186
+django/contrib/admin/locale/uk/LC_MESSAGES/djangojs.po,sha256=BMhVrEO5nI2yYIKqSd4FfS7rtKFvsYk_O2olgMidp4M,7088
+django/contrib/admin/locale/ur/LC_MESSAGES/django.mo,sha256=HvyjnSeLhUf1JVDy759V_TI7ygZfLaMhLnoCBJxhH_s,13106
+django/contrib/admin/locale/ur/LC_MESSAGES/django.po,sha256=BFxxLbHs-UZWEmbvtWJNA7xeuvO9wDc32H2ysKZQvF4,17531
+django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.mo,sha256=eYN9Q9KKTV2W0UuqRc-gg7y42yFAvJP8avMeZM-W7mw,2678
+django/contrib/admin/locale/ur/LC_MESSAGES/djangojs.po,sha256=Nj-6L6axLrqA0RHUQbidNAT33sXYfVdGcX4egVua-Pk,4646
+django/contrib/admin/locale/uz/LC_MESSAGES/django.mo,sha256=yKpKebwX6RzUwCkvHzEQ_DFRr7x_nGeACRBP0PljTCQ,4634
+django/contrib/admin/locale/uz/LC_MESSAGES/django.po,sha256=bf_EhEV0c-H8MAdvRFb8TrXjgAAFfl8xif2Sw9uip_A,13776
+django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.mo,sha256=LpuFvNKqNRCCiV5VyRnJoZ8gY3Xieb05YV9KakNU7o8,3783
+django/contrib/admin/locale/uz/LC_MESSAGES/djangojs.po,sha256=joswozR3I1ijRapf50FZMzQQhI_aU2XiiSTLeSxkL64,5235
+django/contrib/admin/locale/vi/LC_MESSAGES/django.mo,sha256=coCDRhju7xVvdSaounXO5cMqCmLWICZPJth6JI3Si2c,18077
+django/contrib/admin/locale/vi/LC_MESSAGES/django.po,sha256=Q1etVmaAb1f79f4uVjbNjPkn-_3m2Spz1buNAV3y9lk,19543
+django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.mo,sha256=45E-fCQkq-BRLzRzsGkw1-AvWlvjL1rdsRFqfsvAq98,5302
+django/contrib/admin/locale/vi/LC_MESSAGES/djangojs.po,sha256=k87QvFnt8psnwMXXrFO6TyH6xCyXIDd_rlnWDfl2FAA,5958
+django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=Mqf-2H_QUW3Ex30n_KSWdWufO6gFUYSUsBxdW418huM,17143
+django/contrib/admin/locale/zh_Hans/LC_MESSAGES/django.po,sha256=0rSHQ8jJ5OuiX5zgBwhswSqM6Z90NO5WASbZkFjTNy4,19234
+django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.mo,sha256=-oaPtoS-K1iBfmpOtn-_XFuqJaFLFDDFzZ6EToaC8g0,5715
+django/contrib/admin/locale/zh_Hans/LC_MESSAGES/djangojs.po,sha256=lpJDxzzdngESFzW38Al5DbfQFfTmM59GCGpj8u9f4rA,6853
+django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=QCYE1_ViC73f-MFScuT1LU2FpSKuV0HMhfffdr4kwVs,16998
+django/contrib/admin/locale/zh_Hant/LC_MESSAGES/django.po,sha256=4n6HkfNDm4PqzPC0C8nSFLgrMvlckEFmpkQO67RkC0k,18466
+django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.mo,sha256=hZT10nRAxHkIQRB0QTYrR6RnuN4XB4gKTs0edT6Xirw,5329
+django/contrib/admin/locale/zh_Hant/LC_MESSAGES/djangojs.po,sha256=_IIXJ-pNPNwkq8PRclD5Fn0-UrX5H2smN5Vsy-26WFg,6103
+django/contrib/admin/migrations/0001_initial.py,sha256=9HFpidmBW2Ix8NcpF1SDXgCMloGER_5XmEu_iYWIMzU,2507
+django/contrib/admin/migrations/0002_logentry_remove_auto_add.py,sha256=LBJ-ZZoiNu3qDtV-zNOHhq6E42V5CoC5a3WMYX9QvkM,553
+django/contrib/admin/migrations/0003_logentry_add_action_flag_choices.py,sha256=AnAKgnGQcg5cQXSVo5UHG2uqKKNOdLyPkIJK-q_AGEE,538
+django/contrib/admin/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/admin/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/admin/migrations/__pycache__/0002_logentry_remove_auto_add.cpython-311.pyc,,
+django/contrib/admin/migrations/__pycache__/0003_logentry_add_action_flag_choices.cpython-311.pyc,,
+django/contrib/admin/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admin/models.py,sha256=qDKzKErTNAl1eEMOD3p-0jJqVDirlZ_CIThW8huwmkk,8500
+django/contrib/admin/options.py,sha256=lwqcC4nxgY9c5eZYwgDPtTNXlwRAE2QWy7fUXzomYcs,101478
+django/contrib/admin/sites.py,sha256=A8VpPnpcJoTtefn8pnfpKQWZIO3WcBFK3nAwgb-sUuQ,23454
+django/contrib/admin/static/admin/css/autocomplete.css,sha256=oZCQKaJleVU68lo5A1fRD1iGzqNgSgtollAc2gVWbaw,9185
+django/contrib/admin/static/admin/css/base.css,sha256=c35h3nlJLWrPs1HuPpMLDqOZVFKWb50_clYB_eqAqG4,22120
+django/contrib/admin/static/admin/css/changelists.css,sha256=qaNfxJlI_NarKm0IjyTkmtRoNXvOoVHfMhoOvVjbE4M,6878
+django/contrib/admin/static/admin/css/dark_mode.css,sha256=-LoAlrUIbBe3v3WyeCdg-5herhVp9CimpUvqnudCUG4,2808
+django/contrib/admin/static/admin/css/dashboard.css,sha256=iCz7Kkr5Ld3Hyjx_O1r_XfZ2LcpxOpVjcDZS1wbqHWs,441
+django/contrib/admin/static/admin/css/forms.css,sha256=vMtSyfxC2shzC3IIBi8RoP6XxNuwvFBHuw1vJMyo7xo,8525
+django/contrib/admin/static/admin/css/login.css,sha256=f8lbZQdAWt1rGdvNrIf1kciQPVcBJX4zYHf81JrqXnI,951
+django/contrib/admin/static/admin/css/nav_sidebar.css,sha256=4wmBb5tVT5_fcnP_UtS16jal0QiqgOKq_yz162Hr_C4,2810
+django/contrib/admin/static/admin/css/responsive.css,sha256=1nMh5ggUkJHalqd4CSjtlrxJp7RKziJAdaF4TqkRxsM,16565
+django/contrib/admin/static/admin/css/responsive_rtl.css,sha256=VANPQZQhF9pb9cHwFMndp56ux_1X0T0AP7hbQTH2Svg,1991
+django/contrib/admin/static/admin/css/rtl.css,sha256=vi3BpkPZnEHNovrpRV2nLQQ_X6VlNCcS2vvzYtKAAxo,4772
+django/contrib/admin/static/admin/css/unusable_password_field.css,sha256=c-s6fSgH5n2hrZO6jopy__T9_VHX0YZJnnGTEfWNjRA,663
+django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124
+django/contrib/admin/static/admin/css/vendor/select2/select2.css,sha256=kalgQ55Pfy9YBkT-4yYYd5N8Iobe-iWeBuzP7LjVO0o,17358
+django/contrib/admin/static/admin/css/vendor/select2/select2.min.css,sha256=FdatTf20PQr_rWg-cAKfl6j4_IY3oohFAJ7gVC3M34E,14966
+django/contrib/admin/static/admin/css/widgets.css,sha256=6V0jFG-sl4XTL422gIA4M3FiBc2Xb3Wm-wY_koWzLvs,11973
+django/contrib/admin/static/admin/img/LICENSE,sha256=0RT6_zSIwWwxmzI13EH5AjnT1j2YU3MwM9j3U19cAAQ,1081
+django/contrib/admin/static/admin/img/README.txt,sha256=Z5Y_AuG3V72qXRo_hS7JTHAid6deKUQKfLHgWP5hQHw,321
+django/contrib/admin/static/admin/img/calendar-icons.svg,sha256=VPzjt0-CwhFaiF2JyX2SjEkPuELU7QlhH4UhuWZmWX0,2455
+django/contrib/admin/static/admin/img/gis/move_vertex_off.svg,sha256=ou-ppUNyy5QZCKFYlcrzGBwEEiTDX5mmJvM8rpwC5DM,1129
+django/contrib/admin/static/admin/img/gis/move_vertex_on.svg,sha256=DgmcezWDms_3VhgqgYUGn-RGFHyScBP0MeX8PwHy_nE,1129
+django/contrib/admin/static/admin/img/icon-addlink.svg,sha256=_5bRQvExVwSP4DsRzIb-yDwutuft2RkHLqcifdlWypE,331
+django/contrib/admin/static/admin/img/icon-alert.svg,sha256=aXtd9PA66tccls-TJfyECQrmdWrj8ROWKC0tJKa7twA,504
+django/contrib/admin/static/admin/img/icon-calendar.svg,sha256=_bcF7a_R94UpOfLf-R0plVobNUeeTto9UMiUIHBcSHY,1086
+django/contrib/admin/static/admin/img/icon-changelink.svg,sha256=pjCclLDG8vvQmfZkFVzFMw1CLer930zafI8XgvDN86c,380
+django/contrib/admin/static/admin/img/icon-clock.svg,sha256=k55Yv6R6-TyS8hlL3Kye0IMNihgORFjoJjHY21vtpEA,677
+django/contrib/admin/static/admin/img/icon-deletelink.svg,sha256=06XOHo5y59UfNBtO8jMBHQqmXt8UmohlSMloUuZ6d0A,392
+django/contrib/admin/static/admin/img/icon-hidelink.svg,sha256=4MGicntOFkPurB9LW_IC-0N88WXKvrQxVyBB9p5gMTA,784
+django/contrib/admin/static/admin/img/icon-no.svg,sha256=QqBaTrrp3KhYJxLYB5E-0cn_s4A_Y8PImYdWjfQSM-c,560
+django/contrib/admin/static/admin/img/icon-unknown-alt.svg,sha256=LyL9oJtR0U49kGHYKMxmmm1vAw3qsfXR7uzZH76sZ_g,655
+django/contrib/admin/static/admin/img/icon-unknown.svg,sha256=ePcXlyi7cob_IcJOpZ66uiymyFgMPHl8p9iEn_eE3fc,655
+django/contrib/admin/static/admin/img/icon-viewlink.svg,sha256=NL7fcy7mQOQ91sRzxoVRLfzWzXBRU59cFANOrGOwWM0,581
+django/contrib/admin/static/admin/img/icon-yes.svg,sha256=_H4JqLywJ-NxoPLqSqk9aGJcxEdZwtSFua1TuI9kIcM,436
+django/contrib/admin/static/admin/img/inline-delete.svg,sha256=GX6XpvjESSee-SBFVIJHuZFjlXKsQVgri2blYsUYw-A,537
+django/contrib/admin/static/admin/img/search.svg,sha256=HgvLPNT7FfgYvmbt1Al1yhXgmzYHzMg8BuDLnU9qpMU,458
+django/contrib/admin/static/admin/img/selector-icons.svg,sha256=0RJyrulJ_UR9aYP7Wbvs5jYayBVhLoXR26zawNMZ0JQ,3291
+django/contrib/admin/static/admin/img/sorting-icons.svg,sha256=cCvcp4i3MAr-mo8LE_h8ZRu3LD7Ma9BtpK-p24O3lVA,1097
+django/contrib/admin/static/admin/img/tooltag-add.svg,sha256=fTZCouGMJC6Qq2xlqw_h9fFodVtLmDMrpmZacGVJYZQ,331
+django/contrib/admin/static/admin/img/tooltag-arrowright.svg,sha256=GIAqy_4Oor9cDMNC2fSaEGh-3gqScvqREaULnix3wHc,280
+django/contrib/admin/static/admin/js/SelectBox.js,sha256=b42sGVqaCDqlr0ibFiZus9FbrUweRcKD_y61HDAdQuc,4530
+django/contrib/admin/static/admin/js/SelectFilter2.js,sha256=AMu_91ua1t4rMqHO94au8-62gdS1kxVAh1V4tSaien0,15845
+django/contrib/admin/static/admin/js/actions.js,sha256=KZnmpiDCroO8EcCawROJdHAdUFL87Xu9pqYUL5jHIxM,8076
+django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js,sha256=ryJhtM9SN0fMdfnhV_m2Hv2pc6a9B0Zpc37ocZ82_-0,19319
+django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js,sha256=t8tRUeNKUwRUhZvowMs1-etzqYa9dQVyAJdcAjT2Ous,9777
+django/contrib/admin/static/admin/js/autocomplete.js,sha256=OAqSTiHZnTWZzJKEvOm-Z1tdAlLjPWX9jKpYkmH0Ozo,1060
+django/contrib/admin/static/admin/js/calendar.js,sha256=cj6qPrSqdWeq_OnWUUKWy4jVGCiy4YxsbXa5KhUw_r4,9141
+django/contrib/admin/static/admin/js/cancel.js,sha256=UEZdvvWu5s4ZH16lFfxa8UPgWXJ3i8VseK5Lcw2Kreg,884
+django/contrib/admin/static/admin/js/change_form.js,sha256=zOTeORCq1i9XXV_saSBBDOXbou5UtZvxYFpVPqxQ02Q,606
+django/contrib/admin/static/admin/js/core.js,sha256=H4_YZp2B3Y9JxMZPpHKVutrUZJbAZd4H6Gc-ilSb4_E,6208
+django/contrib/admin/static/admin/js/filters.js,sha256=T-JlrqZEBSWbiFw_e5lxkMykkACWqWXd_wMy-b3TnaE,978
+django/contrib/admin/static/admin/js/inlines.js,sha256=1IYzrbc22sCRR37CIG_uvu6I4-bkhq7bIcWE5LSb4Ow,15628
+django/contrib/admin/static/admin/js/jquery.init.js,sha256=uM_Kf7EOBMipcCmuQHbyubQkycleSWDCS8-c3WevFW0,347
+django/contrib/admin/static/admin/js/nav_sidebar.js,sha256=1xzV95R3GaqQ953sVmkLIuZJrzFNoDJMHBqwQePp6-Q,3063
+django/contrib/admin/static/admin/js/popup_response.js,sha256=IKRg0dCpW_gkwT-l6yy3hIFxEwbaA5tw0XEckpPaHvE,532
+django/contrib/admin/static/admin/js/prepopulate.js,sha256=UYkWrHNK1-OWp1a5IWZdg0udfo_dcR-jKSn5AlxxqgU,1531
+django/contrib/admin/static/admin/js/prepopulate_init.js,sha256=mJIPAgn8QHji_rSqO6WKNREbpkCILFrjRCCOQ1-9SoQ,586
+django/contrib/admin/static/admin/js/theme.js,sha256=gG6whuLXbtdF-t_pvUO1O7LfVlNZDuzMZONENrOuZp4,1653
+django/contrib/admin/static/admin/js/unusable_password_field.js,sha256=tcGj7GAhLMohHLtxGOAsaZH1t0Fu3fTQk2l3vFV9AY4,1480
+django/contrib/admin/static/admin/js/urlify.js,sha256=8oC4Bcxt8oJY4uy9O4NjPws5lXzDkdfwI2Xo3MxpBTo,7887
+django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt,sha256=1Nuevm8p9RaOrEWtcT8FViOsXQ3NW6ktoj1lCuASAg0,1097
+django/contrib/admin/static/admin/js/vendor/jquery/jquery.js,sha256=eKhayi8LEQwp4NKxN-CfCh-3qOVUtJn3QNZ0TciWLP4,285314
+django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js,sha256=_JqT3SQfawRcv_BIHPThkBvs0OEvtFFmqPF_lYI_Cxo,87533
+django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md,sha256=TuDLxRNwr941hlKg-XeXIFNyntV4tqQvXioDfRFPCzk,1124
+django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js,sha256=IpI3uo19fo77jMtN5R3peoP0OriN-nQfPY2J4fufd8g,866
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js,sha256=zxQ3peSnbVIfrH1Ndjx4DrHDsmbpqu6mfeylVWFM5mY,905
+django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js,sha256=N_KU7ftojf2HgvJRlpP8KqG6hKIbqigYN3K0YH_ctuQ,721
+django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js,sha256=5Z6IlHmuk_6IdZdAVvdigXnlj7IOaKXtcjuI0n0FmYQ,968
+django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js,sha256=wdQbgaxZ47TyGlwvso7GOjpmTXUKaWzvVUr_oCRemEE,1291
+django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js,sha256=g56kWSu9Rxyh_rarLSDa_8nrdqL51JqZai4QQx20jwQ,965
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js,sha256=DSyyAXJUI0wTp_TbFhLNGrgvgRsGWeV3IafxYUGBggM,900
+django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js,sha256=t_8OWVi6Yy29Kabqs_l1sM2SSrjUAgZTwbTX_m0MCL8,1292
+django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js,sha256=tF2mvzFYSWYOU3Yktl3G93pCkf-V9gonCxk7hcA5J1o,828
+django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js,sha256=5bspfcihMp8yXDwfcqvC_nV3QTbtBuQDmR3c7UPQtFw,866
+django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js,sha256=KtP2xNoP75oWnobUrS7Ep_BOFPzcMNDt0wyPnkbIF_Q,1017
+django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js,sha256=IdvD8eY_KpX9fdHvld3OMvQfYsnaoJjDeVkgbIemfn8,1182
+django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js,sha256=C66AO-KOXNuXEWwhwfjYBFa3gGcIzsPFHQAZ9qSh3Go,844
+django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js,sha256=IhZaIy8ufTduO2-vBrivswMCjlPk7vrk4P81pD6B0SM,922
+django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js,sha256=LgLgdOkKjc63svxP1Ua7A0ze1L6Wrv0X6np-8iRD5zw,801
+django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js,sha256=rLmtP7bA_atkNIj81l_riTM7fi5CXxVrFBHFyddO-Hw,868
+django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js,sha256=fqZkE9e8tt2rZ7OrDGPiOsTNdj3S2r0CjbddVUBDeMA,1023
+django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js,sha256=KVGirhGGNee_iIpMGLX5EzH_UkNe-FOPC_0484G-QQ0,803
+django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js,sha256=aj0q2rdJN47BRBc9LqvsgxkuPOcWAbZsUFUlbguwdY0,924
+django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js,sha256=HSJafI85yKp4WzjFPT5_3eZ_-XQDYPzzf4BWmu6uXHk,924
+django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js,sha256=DIPRKHw0NkDuUtLNGdTnYZcoCiN3ustHY-UMmw34V_s,984
+django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js,sha256=m6ZqiKZ_jzwzVFgC8vkYiwy4lH5fJEMV-LTPVO2Wu40,1175
+django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js,sha256=NclTlDTiNFX1y0W1Llj10-ZIoXUYd7vDXqyeUJ7v3B4,852
+django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js,sha256=FTLszcrGaelTW66WV50u_rS6HV0SZxQ6Vhpi2tngC6M,1018
+django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js,sha256=3PdUk0SpHY-H-h62womw4AyyRMujlGc6_oxW-L1WyOs,831
+django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js,sha256=BLh0fntrwtwNwlQoiwLkdQOVyNXHdmRpL28p-W5FsDg,1028
+django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js,sha256=fGJ--Aw70Ppzk3EgLjF1V_QvqD2q_ufXjnQIIyZqYgc,768
+django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js,sha256=gn0ddIqTnJX4wk-tWC5gFORJs1dkgIH9MOwLljBuQK0,807
+django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js,sha256=kGxtapwhRFj3u_IhY_7zWZhKgR5CrZmmasT5w-aoXRM,897
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js,sha256=tZ4sqdx_SEcJbiW5-coHDV8FVmElJRA3Z822EFHkjLM,862
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js,sha256=DH6VrnVdR8SX6kso2tzqnJqs32uCpBNyvP9Kxs3ssjI,1195
+django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js,sha256=x9hyjennc1i0oeYrFUHQnYHakXpv7WD7MSF-c9AaTjg,1088
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js,sha256=ImmB9v7g2ZKEmPFUQeXrL723VEjbiEW3YelxeqHEgHc,855
+django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js,sha256=ZT-45ibVwdWnTyo-TqsqW2NjIp9zw4xs5So78KMb_s8,944
+django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js,sha256=hHpEK4eYSoJj_fvA2wl8QSuJluNxh-Tvp6UZm-ZYaeE,900
+django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js,sha256=PSpxrnBpL4SSs9Tb0qdWD7umUIyIoR2V1fpqRQvCXcA,1038
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js,sha256=NCz4RntkJZf8YDDC1TFBvK-nkn-D-cGNy7wohqqaQD4,811
+django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js,sha256=eduKCG76J3iIPrUekCDCq741rnG4xD7TU3E7Lib7sPE,778
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js,sha256=QQjDPQE6GDKXS5cxq2JRjk3MGDvjg3Izex71Zhonbj8,1357
+django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js,sha256=JctLfTpLQ5UFXtyAmgbCvSPUtW0fy1mE7oNYcMI90bI,904
+django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js,sha256=6gEuKYnJdf8cbPERsw-mtdcgdByUJuLf1QUH0aSajMo,947
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js,sha256=4J4sZtSavxr1vZdxmnub2J0H0qr1S8WnNsTehfdfq4M,1049
+django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js,sha256=0DFe1Hu9fEDSXgpjPOQrA6Eq0rGb15NRbsGh1U4vEr0,876
+django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js,sha256=L5jqz8zc5BF8ukrhpI2vvGrNR34X7482dckX-IUuUpA,878
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js,sha256=Aadb6LV0u2L2mCOgyX2cYZ6xI5sDT9OI3V7HwuueivM,938
+django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js,sha256=bV6emVCE9lY0LzbVN87WKAAAFLUT3kKqEzn641pJ29o,1171
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js,sha256=MnbUcP6pInuBzTW_L_wmXY8gPLGCOcKyzQHthFkImZo,1306
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js,sha256=LPIKwp9gp_WcUc4UaVt_cySlNL5_lmfZlt0bgtwnkFk,925
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js,sha256=oIxJLYLtK0vG2g3s5jsGLn4lHuDgSodxYAWL0ByHRHo,903
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js,sha256=BoT2KdiceZGgxhESRz3W2J_7CFYqWyZyov2YktUo_2w,1109
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js,sha256=7EELYXwb0tISsuvL6eorxzTviMK-oedSvZvEZCMloGU,980
+django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js,sha256=c6nqUmitKs4_6AlYDviCe6HqLyOHqot2IrvJRGjj1JE,786
+django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js,sha256=saDPLk-2dq5ftKCvW1wddkJOg-mXA-GUoPPVOlSZrIY,1074
+django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js,sha256=mUEGlb-9nQHvzcTYI-1kjsB7JsPRGpLxWbjrJ8URthU,771
+django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js,sha256=dDz8iSp07vbx9gciIqz56wmc2TLHj5v8o6es75vzmZU,775
+django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js,sha256=MixhFDvdRda-wj-TjrN018s7R7E34aQhRjz4baxrdKw,1156
+django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js,sha256=mwTeySsUAgqu_IA6hvFzMyhcSIM1zGhNYKq8G7X_tpM,796
+django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js,sha256=olAdvPQ5qsN9IZuxAKgDVQM-blexUnWTDTXUtiorygI,768
+django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js,sha256=DnDBG9ywBOfxVb2VXg71xBR_tECPAxw7QLhZOXiJ4fo,707
+django/contrib/admin/static/admin/js/vendor/select2/select2.full.js,sha256=ugZkER5OAEGzCwwb_4MvhBKE5Gvmc0S59MKn-dooZaI,173566
+django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js,sha256=XG_auAy4aieWldzMImofrFDiySK-pwJC7aoo9St7rS0,79212
+django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt,sha256=c68pSb_5KWyw-BbDvhmk2k6VrclMH5JHlui60_A_Lyk,1106
+django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js,sha256=FM2fFr4a9mVscQobpyNQG1Bu4_8exjunQglEoPSP5uo,325171
+django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js,sha256=-FQXGywOGwW-5DdFMWIq0QWpGX3rQFuQpIDe6N_9eVI,163184
+django/contrib/admin/templates/admin/404.html,sha256=zyawWu1I9IxDGBRsks6-DgtLUGDDYOKHfj9YQqPl0AA,282
+django/contrib/admin/templates/admin/500.html,sha256=rZNmFXr9POnc9TdZwD06qkY8h2W5K05vCyssrIzbZGE,551
+django/contrib/admin/templates/admin/actions.html,sha256=BVal6_q7BuTy_V4635prb3Wm3XMhrTvhcKAL5u7K9Gc,1263
+django/contrib/admin/templates/admin/app_index.html,sha256=7NPb0bdLKOdja7FoIERyRZRYK-ldX3PcxMoydguWfzc,493
+django/contrib/admin/templates/admin/app_list.html,sha256=H-kbGQ80Yw0TMqK25Ag4wRVhZXx6-yaec5DHOyUy8dQ,2340
+django/contrib/admin/templates/admin/auth/user/add_form.html,sha256=4bCBr_jz-Tz811qOh9rsKHSQQ0_skbRJ48spVqSMU8k,547
+django/contrib/admin/templates/admin/auth/user/change_password.html,sha256=yvlBTc1rCMJWDIQmGdXku22foM2Il4f8CepoCUQgKJ8,3893
+django/contrib/admin/templates/admin/base.html,sha256=ScYhl-zj2KNtU4b1PAmu0v3wGJlPItu_FVCacnLQ0Bs,6139
+django/contrib/admin/templates/admin/base_site.html,sha256=GCiXgXwC_ZZ1goTKnrbdNfWONojGxTatiD5hCsA8HTg,450
+django/contrib/admin/templates/admin/change_form.html,sha256=6F2s0J3XcxpW35XarZBW1ZMogqO0mvPPfbyaPfOzSI4,3197
+django/contrib/admin/templates/admin/change_form_object_tools.html,sha256=C0l0BJF2HuSjIvtY-Yr-ByZ9dePFRrTc-MR-OVJD-AI,403
+django/contrib/admin/templates/admin/change_list.html,sha256=ILjQ5FRnzNPOfKQccDD8T5583A5R-5NIZuf3QEB5WFI,3934
+django/contrib/admin/templates/admin/change_list_object_tools.html,sha256=-AX0bYTxDsdLtEpAEK3RFpY89tdvVChMAWPYBLqPn48,378
+django/contrib/admin/templates/admin/change_list_results.html,sha256=yOpb1o-L5Ys9GiRA_nCXoFhIzREDVXLBuYzZk1xrx1w,1502
+django/contrib/admin/templates/admin/color_theme_toggle.html,sha256=a2uh7_c2umbLLGRD_cVdVmfp291TwQYkD_87sYCotIU,703
+django/contrib/admin/templates/admin/date_hierarchy.html,sha256=Hug06L1uQzPQ-NAeixTtKRtDu2lAWh96o6f8ElnyU0c,453
+django/contrib/admin/templates/admin/delete_confirmation.html,sha256=3eMxQPSITd7Mae22TALXtCvJR4YMwfzNG_iAtuyF0PI,2539
+django/contrib/admin/templates/admin/delete_selected_confirmation.html,sha256=5yyaNqfiK1evhJ7px7gmMqjFwYrrMaKNDvQJ3-Lu4mo,2241
+django/contrib/admin/templates/admin/edit_inline/stacked.html,sha256=q4DUCiTfrlVypMV6TrvkN4zl1QDe57l-VTvYcO6yl1Q,3108
+django/contrib/admin/templates/admin/edit_inline/tabular.html,sha256=7xsNm1C-HiThj0TJZXGvcHAgLeOBbuuXRjGMiqXW8fc,4401
+django/contrib/admin/templates/admin/filter.html,sha256=cvjazGEln3BL_0iyz8Kcsend5WhT9y-gXKRN2kHqejU,395
+django/contrib/admin/templates/admin/includes/fieldset.html,sha256=LX_8XwduBMo3DmQNuGaK0toLMoVnsMdMiaZOfG-zU6k,2720
+django/contrib/admin/templates/admin/includes/object_delete_summary.html,sha256=OC7VhKQiczmi01Gt_3jyemelerSNrGyDiWghUK6xKEI,192
+django/contrib/admin/templates/admin/index.html,sha256=TQxZdAy2ZyeXBLA_KZMXus7e2TGezFAUTsYHJBMLPl8,2070
+django/contrib/admin/templates/admin/invalid_setup.html,sha256=F5FS3o7S3l4idPrX29OKlM_azYmCRKzFdYjV_jpTqhE,447
+django/contrib/admin/templates/admin/login.html,sha256=FZA-d3HEISXkGSyJlxncbVu3Jff7-zwwJ8KkwlN2AHM,2001
+django/contrib/admin/templates/admin/nav_sidebar.html,sha256=OfI8XJn3_Q_Wf2ymc1IH61eTGZNMFwkkGwXXTDqeuP8,486
+django/contrib/admin/templates/admin/object_history.html,sha256=5e6ki7C94YKBoFyCvDOfqt4YzCyhNmNMy8NM4aKqiHc,2136
+django/contrib/admin/templates/admin/pagination.html,sha256=OBvC2HWFaH3wIuk6gzKSyCli51NTaW8vnJFyBOpNo_8,549
+django/contrib/admin/templates/admin/popup_response.html,sha256=Lj8dfQrg1XWdA-52uNtWJ9hwBI98Wt2spSMkO4YBjEk,327
+django/contrib/admin/templates/admin/prepopulated_fields_js.html,sha256=PShGpqQWBBVwQ86r7b-SimwJS0mxNiz8AObaiDOSfvY,209
+django/contrib/admin/templates/admin/search_form.html,sha256=GImO4ldr2iVMDKPa2prQzrJyrZEQS1Zy6guNfF6VbQ8,1357
+django/contrib/admin/templates/admin/submit_line.html,sha256=yI7XWZCjvY5JtDAvbzx8hpXZi4vRYWx0mty7Zt5uWjY,1093
+django/contrib/admin/templates/admin/widgets/clearable_file_input.html,sha256=3g3JbkQmjgjl_Lyz6DzkvNBxlJT0GJAuQGV4MAGSyJ0,666
+django/contrib/admin/templates/admin/widgets/date.html,sha256=uJME8ir5DrcrWze9ikzlspoaCudQqxyMMGr6azIMkMc,71
+django/contrib/admin/templates/admin/widgets/foreign_key_raw_id.html,sha256=X1Qsxepoht7TCZTJLHZ6jgbZLTEWjeaqBCqlAvmgiUg,412
+django/contrib/admin/templates/admin/widgets/many_to_many_raw_id.html,sha256=w18JMKnPKrw6QyqIXBcdPs3YJlTRtHK5HGxj0lVkMlY,54
+django/contrib/admin/templates/admin/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57
+django/contrib/admin/templates/admin/widgets/related_widget_wrapper.html,sha256=a3CWvuTtb6hRcf5-gsqRuhEJF18pOmwuRjJerDetLyY,2102
+django/contrib/admin/templates/admin/widgets/split_datetime.html,sha256=BQ9XNv3eqtvNqZZGW38VBM2Nan-5PBxokbo2Fm_wwCQ,238
+django/contrib/admin/templates/admin/widgets/time.html,sha256=oiXCD1IvDhALK3w0fCrVc7wBOFMJhvPNTG2_NNz9H7A,71
+django/contrib/admin/templates/admin/widgets/url.html,sha256=Tf7PwdoKAiimfmDTVbWzRVxxUeyfhF0OlsuiOZ1tHgI,218
+django/contrib/admin/templates/registration/logged_out.html,sha256=PuviqzJh7C6SZJl9yKZXDcxxqXNCTDVfRuEpqvwJiPE,425
+django/contrib/admin/templates/registration/password_change_done.html,sha256=Ukca5IPY_VhtO3wfu9jABgY7SsbB3iIGp2KCSJqihlQ,745
+django/contrib/admin/templates/registration/password_change_form.html,sha256=44zs7GemkINgUYdTG-OJOtoedFCfJOM1QJE79HCg5BA,2534
+django/contrib/admin/templates/registration/password_reset_complete.html,sha256=_fc5bDeYBaI5fCUJZ0ZFpmOE2CUqlbk3npGk63uc_Ks,417
+django/contrib/admin/templates/registration/password_reset_confirm.html,sha256=GH9bThrSAyh4fvHoG2AwpFsmjetbfKV93gt1MoFeov0,1646
+django/contrib/admin/templates/registration/password_reset_done.html,sha256=SQsksjWN8vPLpvtFYPBFMMqZtLeiB4nesPq2VxpB3Y8,588
+django/contrib/admin/templates/registration/password_reset_email.html,sha256=gPbRowVMtGh_HxZvMQh3R3onpboxrseV_DB1Hsfme1g,606
+django/contrib/admin/templates/registration/password_reset_form.html,sha256=HlkKmHDfFU8m1eNdrvain-ccTOwSftLHSCmX0Tcmthg,1066
+django/contrib/admin/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/admin/templatetags/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admin/templatetags/__pycache__/admin_list.cpython-311.pyc,,
+django/contrib/admin/templatetags/__pycache__/admin_modify.cpython-311.pyc,,
+django/contrib/admin/templatetags/__pycache__/admin_urls.cpython-311.pyc,,
+django/contrib/admin/templatetags/__pycache__/base.cpython-311.pyc,,
+django/contrib/admin/templatetags/__pycache__/log.cpython-311.pyc,,
+django/contrib/admin/templatetags/admin_list.py,sha256=r60BQcBy3_sEzUk86KYviKbR8vzOcpoPR53AviGFnpE,19159
+django/contrib/admin/templatetags/admin_modify.py,sha256=DGE-YaZB1-bUqvjOwmnWJTrIRiR1qYdY6NyPDj1Hj3U,4978
+django/contrib/admin/templatetags/admin_urls.py,sha256=HNooe26wytMLh5DdgOqzcyHtNf4G-vWfcsL7xQlWVuE,2038
+django/contrib/admin/templatetags/base.py,sha256=0jlMfZu-IZkTJsnJQUtqBX2ceqCaVeClTTS1wdxn73w,1465
+django/contrib/admin/templatetags/log.py,sha256=vL2TNhgFsCH-4JXDE-2I_BhB2xQQLwx4GkHKx7m8Rz4,2050
+django/contrib/admin/tests.py,sha256=GJuWJAKvlZ_9qe86EMvroI34oaafoUl8iFM_P_YSWKQ,8559
+django/contrib/admin/utils.py,sha256=c_uFWsPQfXBfSdPbaarAfOabg1_mUjpOBzqIl8LOdRA,21908
+django/contrib/admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/admin/views/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admin/views/__pycache__/autocomplete.cpython-311.pyc,,
+django/contrib/admin/views/__pycache__/decorators.cpython-311.pyc,,
+django/contrib/admin/views/__pycache__/main.cpython-311.pyc,,
+django/contrib/admin/views/autocomplete.py,sha256=PjC8db25zhYgwLS_4pq6PApTD_YRn4muIH0A_VN7kCg,4385
+django/contrib/admin/views/decorators.py,sha256=4ndYdYoPLhWsdutME0Lxsmcf6UFP5Z2ou3_pMjgNbw8,639
+django/contrib/admin/views/main.py,sha256=NmC8lhTRcVxFTQ6DZZgcxkSB0aCHh6TVO5xiH8tJPL0,25868
+django/contrib/admin/widgets.py,sha256=ujOuEp7Db12KIEcje7_ry55q_FISyheBF-7E3z8drFg,19637
+django/contrib/admindocs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/admindocs/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/admindocs/__pycache__/apps.cpython-311.pyc,,
+django/contrib/admindocs/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/admindocs/__pycache__/urls.cpython-311.pyc,,
+django/contrib/admindocs/__pycache__/utils.cpython-311.pyc,,
+django/contrib/admindocs/__pycache__/views.cpython-311.pyc,,
+django/contrib/admindocs/apps.py,sha256=bklhU4oaTSmPdr0QzpVeuNT6iG77QM1AgiKKZDX05t4,216
+django/contrib/admindocs/locale/af/LC_MESSAGES/django.mo,sha256=M80Uggz4Rn4g2Dg9z9pwjkhzWmMhxjXTaA4dXaXzI5s,3326
+django/contrib/admindocs/locale/af/LC_MESSAGES/django.po,sha256=STP4d23ByifM1Gda8i5o4OuB9OobBDIp348jhezP-UI,5728
+django/contrib/admindocs/locale/ar/LC_MESSAGES/django.mo,sha256=MwAJ0TMsgRN4wrwlhlw3gYCfZK5IKDzNPuvjfJS_Eug,7440
+django/contrib/admindocs/locale/ar/LC_MESSAGES/django.po,sha256=KSmZCjSEizBx5a6yN_u0FPqG5QoXsTV9gdJkqWC8xC8,8052
+django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=lW-fKcGwnRtdpJLfVw9i1HiM25TctVK0oA0bGV7yAzU,7465
+django/contrib/admindocs/locale/ar_DZ/LC_MESSAGES/django.po,sha256=c8LOJTCkHd1objwj6Xqh0wF3LwkLJvWg9FIWSWWMI-I,7985
+django/contrib/admindocs/locale/ast/LC_MESSAGES/django.mo,sha256=d4u-2zZXnnueWm9CLSnt4TRWgZk2NMlrA6gaytJ2gdU,715
+django/contrib/admindocs/locale/ast/LC_MESSAGES/django.po,sha256=TUkc-Hm4h1kD0NKyndteW97jH6bWcJMFXUuw2Bd62qo,4578
+django/contrib/admindocs/locale/az/LC_MESSAGES/django.mo,sha256=knby8sXcdqYpoh5Cgja0q10EKPnqDV2PSdogbeq7hGs,6645
+django/contrib/admindocs/locale/az/LC_MESSAGES/django.po,sha256=dZycgZBvmp90lzwrIEGVytIsxTonfAI7Vqd_dJeKcYk,7223
+django/contrib/admindocs/locale/be/LC_MESSAGES/django.mo,sha256=VZl0yvgbo0jwQpf-s472jagbUj83A3twnxddQGwGW5c,8163
+django/contrib/admindocs/locale/be/LC_MESSAGES/django.po,sha256=Z8ZtS_t5Tc7iy1p4TTrsKZqiMJl94f1jiTWuv1sep3A,8728
+django/contrib/admindocs/locale/bg/LC_MESSAGES/django.mo,sha256=bNNoMFB0_P1qut4txQqHiXGxJa8-sjIZA8bb_jPaaHk,8242
+django/contrib/admindocs/locale/bg/LC_MESSAGES/django.po,sha256=nJMwR6R19pXmf4u6jBwe8Xn9fObSaAzulNeqsm8bszo,8989
+django/contrib/admindocs/locale/bn/LC_MESSAGES/django.mo,sha256=NOKVcE8id9G1OctSly4C5lm64CgEF8dohX-Pdyt4kCM,3794
+django/contrib/admindocs/locale/bn/LC_MESSAGES/django.po,sha256=6M7LjIEjvDTjyraxz70On_TIsgqJPLW7omQ0Fz_zyfQ,6266
+django/contrib/admindocs/locale/br/LC_MESSAGES/django.mo,sha256=UsPTado4ZNJM_arSMXyuBGsKN-bCHXQZdFbh0GB3dtg,1571
+django/contrib/admindocs/locale/br/LC_MESSAGES/django.po,sha256=SHOxPSgozJbOkm8u5LQJ9VmL58ZSBmlxfOVw1fAGl2s,5139
+django/contrib/admindocs/locale/bs/LC_MESSAGES/django.mo,sha256=clvhu0z3IF5Nt0tZ85hOt4M37pnGEWeIYumE20vLpsI,1730
+django/contrib/admindocs/locale/bs/LC_MESSAGES/django.po,sha256=1-OrVWFqLpeXQFfh7JNjJtvWjVww7iB2s96dcSgLy90,5042
+django/contrib/admindocs/locale/ca/LC_MESSAGES/django.mo,sha256=nI2ctIbZVrsaMbJQGIHQCjwqJNTnH3DKxwI2dWR6G_w,6650
+django/contrib/admindocs/locale/ca/LC_MESSAGES/django.po,sha256=hPjkw0bkoUu-yKU8XYE3ji0NG4z5cE1LGonYPJXeze4,7396
+django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.mo,sha256=QisqerDkDuKrctJ10CspniXNDqBnCI2Wo-CKZUZtsCY,8154
+django/contrib/admindocs/locale/ckb/LC_MESSAGES/django.po,sha256=0adJyGnFg3qoD11s9gZbJlY8O0Dd1mpKF8OLQAkHZHE,8727
+django/contrib/admindocs/locale/cs/LC_MESSAGES/django.mo,sha256=dJ-3fDenE42f6XZFc-yrfWL1pEAmSGt2j1eWAyy-5OQ,6619
+django/contrib/admindocs/locale/cs/LC_MESSAGES/django.po,sha256=uU4n9PsiI96O0UpJzL-inVzB1Kx7OB_SbLkjrFLuyVA,7227
+django/contrib/admindocs/locale/cy/LC_MESSAGES/django.mo,sha256=sYeCCq0CMrFWjT6rKtmFrpC09OEFpYLSI3vu9WtpVTY,5401
+django/contrib/admindocs/locale/cy/LC_MESSAGES/django.po,sha256=GhdikiXtx8Aea459uifQtBjHuTlyUeiKu0_rR_mDKyg,6512
+django/contrib/admindocs/locale/da/LC_MESSAGES/django.mo,sha256=vmsIZeMIVpLkSdJNS0G6alAmBBEtLDBLnOd-P3dSOAs,6446
+django/contrib/admindocs/locale/da/LC_MESSAGES/django.po,sha256=bSoTGPcE7MdRfAtBybZT9jsuww2VDH9t5CssaxSs_GU,7148
+django/contrib/admindocs/locale/de/LC_MESSAGES/django.mo,sha256=ReSz0aH1TKT6AtP13lWoONnwNM2OGo4jK9fXJlo75Hc,6567
+django/contrib/admindocs/locale/de/LC_MESSAGES/django.po,sha256=tVkDIPF_wYb_KaJ7PF9cZyBJoYu6RpznoM9JIk3RYN4,7180
+django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.mo,sha256=K_QuInKk1HrrzQivwJcs_2lc1HreFj7_R7qQh3qMTPY,6807
+django/contrib/admindocs/locale/dsb/LC_MESSAGES/django.po,sha256=flF1D0gfTScuC_RddC9njLe6RrnqnksiRxwODVA9Vqw,7332
+django/contrib/admindocs/locale/el/LC_MESSAGES/django.mo,sha256=1x0sTZwWbGEURyRaSn4ONvTPXHwm7XemNlcun9Nm1QI,8581
+django/contrib/admindocs/locale/el/LC_MESSAGES/django.po,sha256=GebfJfW0QPzAQyBKz1Km9a3saCpAWT7d_Qe2nCBvGn4,9320
+django/contrib/admindocs/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/admindocs/locale/en/LC_MESSAGES/django.po,sha256=pEypE71l-Ude2e3XVf0tkBpGx6BSYNqBagWnSYmEbxI,10688
+django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.mo,sha256=BQ54LF9Tx88m-pG_QVz_nm_vqvoy6pVJzL8urSO4l1Q,486
+django/contrib/admindocs/locale/en_AU/LC_MESSAGES/django.po,sha256=ho7s1uKEs9FGooyZBurvSjvFz1gDSX6R4G2ZKpF1c9Q,5070
+django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.mo,sha256=xKGbswq1kuWCbn4zCgUQUb58fEGlICIOr00oSdCgtU4,1821
+django/contrib/admindocs/locale/en_GB/LC_MESSAGES/django.po,sha256=No09XHkzYVFBgZqo7bPlJk6QD9heE0oaI3JmnrU_p24,4992
+django/contrib/admindocs/locale/eo/LC_MESSAGES/django.mo,sha256=114OOVg9hP0H0UU2aQngCm0wE7zEEAp7QFMupOuWCfQ,6071
+django/contrib/admindocs/locale/eo/LC_MESSAGES/django.po,sha256=h8P3lmvBaJ8J2xiytReJvI8iGK0gCe-LPK27kWxSNKI,6799
+django/contrib/admindocs/locale/es/LC_MESSAGES/django.mo,sha256=wVt9I5M6DGKZFhPhYuS2yKRGVzSROthx98TFiJvJA80,6682
+django/contrib/admindocs/locale/es/LC_MESSAGES/django.po,sha256=F72OFWbIZXvopNMzy7eIibNKc5EM0jsYgbN4PobD6tc,7602
+django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.mo,sha256=mZ7OKAmlj2_FOabKsEiWycxiKLSLCPFldponKNxINjs,6658
+django/contrib/admindocs/locale/es_AR/LC_MESSAGES/django.po,sha256=deaOq0YMCb1B1PHWYUbgUrQsyXFutn4wQ2BAXiyzugA,7257
+django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.mo,sha256=KFjQyWtSxH_kTdSJ-kNUDAFt3qVZI_3Tlpg2pdkvJfs,6476
+django/contrib/admindocs/locale/es_CO/LC_MESSAGES/django.po,sha256=dwrTVjYmueLiVPu2yiJ_fkFF8ZeRntABoVND5H2WIRI,7038
+django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.mo,sha256=3hZiFFVO8J9cC624LUt4lBweqmpgdksRtvt2TLq5Jqs,1853
+django/contrib/admindocs/locale/es_MX/LC_MESSAGES/django.po,sha256=gNmx1QTbmyMxP3ftGXGWJH_sVGThiSe_VNKkd7M9jOY,5043
+django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.mo,sha256=sMwJ7t5GqPF496w-PvBYUneZ9uSwmi5jP-sWulhc6BM,6663
+django/contrib/admindocs/locale/es_VE/LC_MESSAGES/django.po,sha256=ZOcE0f95Q6uD9SelK6bQlKtS2c3JX9QxNYCihPdlM5o,7201
+django/contrib/admindocs/locale/et/LC_MESSAGES/django.mo,sha256=JQHVKehV0sxNaBQRqbsN-Of22CMV70bQ9TUId3QDudY,6381
+django/contrib/admindocs/locale/et/LC_MESSAGES/django.po,sha256=qrS3cPEy16hEi1857jvqsmr9zHF9_AkkJUw4mKimg98,7096
+django/contrib/admindocs/locale/eu/LC_MESSAGES/django.mo,sha256=WHgK7vGaqjO4MwjBkWz2Y3ABPXCqfnwSGelazRhOiuo,6479
+django/contrib/admindocs/locale/eu/LC_MESSAGES/django.po,sha256=718XgJN7UQcHgE9ku0VyFp7Frs-cvmCTO1o-xS5kpqc,7099
+django/contrib/admindocs/locale/fa/LC_MESSAGES/django.mo,sha256=Qrkrb_CHPGymnXBoBq5oeTs4W54R6nLz5hLIWH63EHM,7499
+django/contrib/admindocs/locale/fa/LC_MESSAGES/django.po,sha256=L-rxiKqUmlQgrPTLQRaS50woZWB9JuEamJpgDpLvIXw,8251
+django/contrib/admindocs/locale/fi/LC_MESSAGES/django.mo,sha256=SzuPvgeiaBwABvkJbOoTHsbP7juAuyyMWAjENr50gYk,6397
+django/contrib/admindocs/locale/fi/LC_MESSAGES/django.po,sha256=jn4ZMVQ_Gh6I-YLSmBhlyTn5ICP5o3oj7u0VKpV2hnI,6972
+django/contrib/admindocs/locale/fr/LC_MESSAGES/django.mo,sha256=dD92eLXIDeI-a_BrxX1G49qRwLS4Vt56bTP9cha5MeE,6755
+django/contrib/admindocs/locale/fr/LC_MESSAGES/django.po,sha256=hiUeHTul4Z3JWmkClGZmD5Xn4a1Tj1A5OLRfKU5Zdmo,7329
+django/contrib/admindocs/locale/fy/LC_MESSAGES/django.mo,sha256=_xVO-FkPPoTla_R0CzktpRuafD9fuIP_G5N-Q08PxNg,476
+django/contrib/admindocs/locale/fy/LC_MESSAGES/django.po,sha256=b3CRH9bSUl_jjb9s51RlvFXp3bmsmuxTfN_MTmIIVNA,5060
+django/contrib/admindocs/locale/ga/LC_MESSAGES/django.mo,sha256=2kOgyNWHQaNq-cwsh5YmmqWa8z9WN7HHUEEW85hek4A,6786
+django/contrib/admindocs/locale/ga/LC_MESSAGES/django.po,sha256=PEuuqMz1-aW96Lcy72PsVormIrN522Qd6RxSM1VVMTk,7424
+django/contrib/admindocs/locale/gd/LC_MESSAGES/django.mo,sha256=k5-Ov9BkwYHZ_IvIxQdHKVBdOUN7kWGft1l7w5Scd5o,6941
+django/contrib/admindocs/locale/gd/LC_MESSAGES/django.po,sha256=FyvfRNkSrEZo8x1didB6nFHYD54lZfKSoAGcwJ2wLso,7478
+django/contrib/admindocs/locale/gl/LC_MESSAGES/django.mo,sha256=15OYKk17Dlz74RReFrCHP3eHmaxP8VeRE2ylDOeUY8w,6564
+django/contrib/admindocs/locale/gl/LC_MESSAGES/django.po,sha256=mvQmxR4LwDLbCWyIU-xmJEw6oeSY3KFWC1nqnbnuDyc,7197
+django/contrib/admindocs/locale/he/LC_MESSAGES/django.mo,sha256=1_aXtUXx-NISzJmlfprUZ5LieD9BwCcCUQ-DQ_YF-jk,6998
+django/contrib/admindocs/locale/he/LC_MESSAGES/django.po,sha256=aONIl7C_5hgo0agjYleyZAkj4_VPkQVPT0R7wWPhJEs,7589
+django/contrib/admindocs/locale/hi/LC_MESSAGES/django.mo,sha256=sZhObIxqrmFu5Y-ZOQC0JGM3ly4IVFr02yqOOOHnDag,2297
+django/contrib/admindocs/locale/hi/LC_MESSAGES/django.po,sha256=X6UfEc6q0BeaxVP_C4priFt8irhh-YGOUUzNQyVnEYY,5506
+django/contrib/admindocs/locale/hr/LC_MESSAGES/django.mo,sha256=fMsayjODNoCdbpBAk9GHtIUaGJGFz4sD9qYrguj-BQA,2550
+django/contrib/admindocs/locale/hr/LC_MESSAGES/django.po,sha256=qi2IB-fBkGovlEz2JAQRUNE54MDdf5gjNJWXM-dIG1s,5403
+django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.mo,sha256=4CbZ95VHJUg3UNt-FdzPtUtHJLralgnhadz-evigiFA,6770
+django/contrib/admindocs/locale/hsb/LC_MESSAGES/django.po,sha256=ty8zWmqY160ZpSbt1-_2iY2M4RIL7ksh5-ggQGc_TO8,7298
+django/contrib/admindocs/locale/hu/LC_MESSAGES/django.mo,sha256=ATEt9wE2VNQO_NMcwepgxpS7mYXdVD5OySFFPWpnBUA,6634
+django/contrib/admindocs/locale/hu/LC_MESSAGES/django.po,sha256=3XKQrlonyLXXpU8xeS1OLXcKmmE2hiBoMJN-QZ3k82g,7270
+django/contrib/admindocs/locale/ia/LC_MESSAGES/django.mo,sha256=KklX2loobVtA6PqHOZHwF1_A9YeVGlqORinHW09iupI,1860
+django/contrib/admindocs/locale/ia/LC_MESSAGES/django.po,sha256=Z7btOCeARREgdH4CIJlVob_f89r2M9j55IDtTLtgWJU,5028
+django/contrib/admindocs/locale/id/LC_MESSAGES/django.mo,sha256=2HZrdwFeJV4Xk2HIKsxp_rDyBrmxCuRb92HtFtW8MxE,6343
+django/contrib/admindocs/locale/id/LC_MESSAGES/django.po,sha256=O01yt7iDXvEwkebUxUlk-vCrLR26ebuqI51x64uqFl4,7041
+django/contrib/admindocs/locale/io/LC_MESSAGES/django.mo,sha256=5t9Vurrh6hGqKohwsZIoveGeYCsUvRBRMz9M7k9XYY8,464
+django/contrib/admindocs/locale/io/LC_MESSAGES/django.po,sha256=SVZZEmaS1WbXFRlLLGg5bzUe09pXR23TeJtHUbhyl0w,5048
+django/contrib/admindocs/locale/is/LC_MESSAGES/django.mo,sha256=pEr-_MJi4D-WpNyFaQe3tVKVLq_9V-a4eIF18B3Qyko,1828
+django/contrib/admindocs/locale/is/LC_MESSAGES/django.po,sha256=-mD5fFnL6xUqeW4MITzm8Lvx6KXq4C9DGsEM9kDluZ8,5045
+django/contrib/admindocs/locale/it/LC_MESSAGES/django.mo,sha256=AzCkkJ8x-V38XSOdOG2kMSUujcn0mD8TIvdAeNT6Qcw,6453
+django/contrib/admindocs/locale/it/LC_MESSAGES/django.po,sha256=SUsGtCKkCVoj5jaM6z_-JQR8kv8W4Wv_OE26hpOb96s,7171
+django/contrib/admindocs/locale/ja/LC_MESSAGES/django.mo,sha256=KoPwCbH9VlKoP_7zTEjOzPsHZ7jVWl2grQRckQmshw4,7358
+django/contrib/admindocs/locale/ja/LC_MESSAGES/django.po,sha256=6ZTqM2qfBS_j5aLH52yJPYW4e4X5MqiQFdqV1fmEQGg,8047
+django/contrib/admindocs/locale/ka/LC_MESSAGES/django.mo,sha256=w2cHLI1O3pVt43H-h71cnNcjNNvDC8y9uMYxZ_XDBtg,4446
+django/contrib/admindocs/locale/ka/LC_MESSAGES/django.po,sha256=omKVSzNA3evF5Mk_Ud6utHql-Do7s9xDzCVQGQA0pSg,6800
+django/contrib/admindocs/locale/kab/LC_MESSAGES/django.mo,sha256=XTuWnZOdXhCFXEW4Hp0zFtUtAF0wJHaFpQqoDUTWYGw,1289
+django/contrib/admindocs/locale/kab/LC_MESSAGES/django.po,sha256=lQWewMZncWUvGhpkgU_rtwWHcgAyvhIkrDfjFu1l-d8,4716
+django/contrib/admindocs/locale/kk/LC_MESSAGES/django.mo,sha256=mmhLzn9lo4ff_LmlIW3zZuhE77LoSUfpaMMMi3oyi38,1587
+django/contrib/admindocs/locale/kk/LC_MESSAGES/django.po,sha256=72sxLw-QDSFnsH8kuzeQcV5jx7Hf1xisBmxI8XqSCYw,5090
+django/contrib/admindocs/locale/km/LC_MESSAGES/django.mo,sha256=Fff1K0qzialXE_tLiGM_iO5kh8eAmQhPZ0h-eB9iNOU,1476
+django/contrib/admindocs/locale/km/LC_MESSAGES/django.po,sha256=E_CaaYc4GqOPgPh2t7iuo0Uf4HSQQFWAoxSOCG-uEGU,4998
+django/contrib/admindocs/locale/kn/LC_MESSAGES/django.mo,sha256=lisxE1zzW-Spdm7hIzXxDAfS7bM-RdrAG_mQVwz9WMU,1656
+django/contrib/admindocs/locale/kn/LC_MESSAGES/django.po,sha256=u6JnB-mYoYWvLl-2pzKNfeNlT1s6A2I3lRi947R_0yA,5184
+django/contrib/admindocs/locale/ko/LC_MESSAGES/django.mo,sha256=nVBVLfXUlGQCeF2foSQ2kksBmR3KbweXdbD6Kyq-PrU,6563
+django/contrib/admindocs/locale/ko/LC_MESSAGES/django.po,sha256=y2YjuXM3p0haXrGpxRtm6I84o75TQaMeT4xbHCg7zOM,7342
+django/contrib/admindocs/locale/ky/LC_MESSAGES/django.mo,sha256=HEJo4CLoIOWpK-MPcTqLhbNMA8Mt3totYN1YbJ_SNn4,7977
+django/contrib/admindocs/locale/ky/LC_MESSAGES/django.po,sha256=VaSXjz8Qlr2EI8f12gtziN7yA7IWsaVoEzL3G6dERXs,8553
+django/contrib/admindocs/locale/lb/LC_MESSAGES/django.mo,sha256=N0hKFuAdDIq5clRKZirGh4_YDLsxi1PSX3DVe_CZe4k,474
+django/contrib/admindocs/locale/lb/LC_MESSAGES/django.po,sha256=B46-wRHMKUMcbvMCdojOCxqIVL5qVEh4Czo20Qgz6oU,5058
+django/contrib/admindocs/locale/lt/LC_MESSAGES/django.mo,sha256=KOnpaVeomKJIHcVLrkeRVnaqQHzFdYM_wXZbbqxWs4g,6741
+django/contrib/admindocs/locale/lt/LC_MESSAGES/django.po,sha256=-uzCS8193VCZPyhO8VOi11HijtBG9CWVKStFBZSXfI4,7444
+django/contrib/admindocs/locale/lv/LC_MESSAGES/django.mo,sha256=sQUIVti4erxrc8T3XddIxhH3ActLzWJOc9lNfpDtVbs,6481
+django/contrib/admindocs/locale/lv/LC_MESSAGES/django.po,sha256=FHdl8WZwtI4VXfKghnrZJVGUNAbwwW-9YWdYxSdTsK4,7161
+django/contrib/admindocs/locale/mk/LC_MESSAGES/django.mo,sha256=8H9IpRASM7O2-Ql1doVgM9c4ybZ2KcfnJr12PpprgP4,8290
+django/contrib/admindocs/locale/mk/LC_MESSAGES/django.po,sha256=Uew7tEljjgmslgfYJOP9JF9ELp6NbhkZG_v50CZgBg8,8929
+django/contrib/admindocs/locale/ml/LC_MESSAGES/django.mo,sha256=bm4tYwcaT8XyPcEW1PNZUqHJIds9CAq3qX_T1-iD4k4,6865
+django/contrib/admindocs/locale/ml/LC_MESSAGES/django.po,sha256=yNINX5M7JMTbYnFqQGetKGIXqOjGJtbN2DmIW9BKQ_c,8811
+django/contrib/admindocs/locale/mn/LC_MESSAGES/django.mo,sha256=MyPphoXZCl6gPq74TyPBAvbc-aUQdUx5t3cdnj3vn_A,7108
+django/contrib/admindocs/locale/mn/LC_MESSAGES/django.po,sha256=h4GNr_G_lqLCiypMQNaw3ItF8RnHzdLhcrKs6vQVPfE,8058
+django/contrib/admindocs/locale/mr/LC_MESSAGES/django.mo,sha256=LDGC7YRyVBU50W-iH0MuESunlRXrNfNjwjXRCBdfFVg,468
+django/contrib/admindocs/locale/mr/LC_MESSAGES/django.po,sha256=5cUgPltXyS2Z0kIKF5ER8f5DuBhwmAINJQyfHj652d0,5052
+django/contrib/admindocs/locale/ms/LC_MESSAGES/django.mo,sha256=vgoSQlIQeFWaVfJv3YK9_0FOywWwxLhWGICKBdxcqJY,6557
+django/contrib/admindocs/locale/ms/LC_MESSAGES/django.po,sha256=Qy_NjgqwEwLGk4oaHB4Np3dVbPeCK2URdI73S73IZLE,7044
+django/contrib/admindocs/locale/my/LC_MESSAGES/django.mo,sha256=AsdUmou0FjCiML3QOeXMdbHiaSt2GdGMcEKRJFonLOQ,1721
+django/contrib/admindocs/locale/my/LC_MESSAGES/django.po,sha256=c75V-PprKrWzgrHbfrZOpm00U_zZRzxAUr2U_j8MF4w,5189
+django/contrib/admindocs/locale/nb/LC_MESSAGES/django.mo,sha256=qlzN0-deW2xekojbHi2w6mYKeBe1Cf1nm8Z5FVrmYtA,6308
+django/contrib/admindocs/locale/nb/LC_MESSAGES/django.po,sha256=a60vtwHJXhjbRAtUIlO0w3XfQcQ0ljwmwFG3WbQ7PNo,6875
+django/contrib/admindocs/locale/ne/LC_MESSAGES/django.mo,sha256=fWPAUZOX9qrDIxGhVVouJCVDWEQLybZ129wGYymuS-c,2571
+django/contrib/admindocs/locale/ne/LC_MESSAGES/django.po,sha256=wb8pCm141YfGSHVW84FnAvsKt5KnKvzNyzGcPr-Wots,5802
+django/contrib/admindocs/locale/nl/LC_MESSAGES/django.mo,sha256=1-s_SdVm3kci2yLQhv1q6kt7zF5EdbaneGAr6PJ7dQU,6498
+django/contrib/admindocs/locale/nl/LC_MESSAGES/django.po,sha256=7s4RysNYRSisywqqZOrRR0il530jRlbEFP3kr4Hq2PA,7277
+django/contrib/admindocs/locale/nn/LC_MESSAGES/django.mo,sha256=tIOU1WrHkAfxD6JBpdakiMi6pVzzvIg0jun6gii-D08,6299
+django/contrib/admindocs/locale/nn/LC_MESSAGES/django.po,sha256=oekYY3xjjM2sPnHv_ZXxAti1ySPF-HxLrvLLk7Izibk,6824
+django/contrib/admindocs/locale/os/LC_MESSAGES/django.mo,sha256=zSQBgSj4jSu5Km0itNgDtbkb1SbxzRvQeZ5M9sXHI8k,2044
+django/contrib/admindocs/locale/os/LC_MESSAGES/django.po,sha256=hZlMmmqfbGmoiElGbJg7Fp791ZuOpRFrSu09xBXt6z4,5215
+django/contrib/admindocs/locale/pa/LC_MESSAGES/django.mo,sha256=yFeO0eZIksXeDhAl3CrnkL1CF7PHz1PII2kIxGA0opQ,1275
+django/contrib/admindocs/locale/pa/LC_MESSAGES/django.po,sha256=DA5LFFLOXHIJIqrrnj9k_rqL-wr63RYX_i-IJFhBuc0,4900
+django/contrib/admindocs/locale/pl/LC_MESSAGES/django.mo,sha256=DHxRNP6YK8qocDqSd2DZg7n-wPp2hJSbjNBLFti7U8o,6633
+django/contrib/admindocs/locale/pl/LC_MESSAGES/django.po,sha256=mRjleE2-9r9TfseHWeyjvRwzBZP_t2LMvihq8n_baU8,7575
+django/contrib/admindocs/locale/pt/LC_MESSAGES/django.mo,sha256=KQnbHsHLYTHd-s8k-xu2y1NHHjvtTWe5XqQko3wz68Q,6605
+django/contrib/admindocs/locale/pt/LC_MESSAGES/django.po,sha256=zG5vL4ZvPzOln_3RhPdHw6p_ig78Y4sUXML0U7YKAvQ,7304
+django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.mo,sha256=L8t589rbg4vs4HArLpgburmMufZ6BTuwxxkv1QUetBA,6590
+django/contrib/admindocs/locale/pt_BR/LC_MESSAGES/django.po,sha256=EG4xELZ8emUIWB78cw8gFeiqTiN9UdAuEaXHyPyNtIE,7538
+django/contrib/admindocs/locale/ro/LC_MESSAGES/django.mo,sha256=9K8Sapn6sOg1wtt2mxn7u0cnqPjEHH70qjwM-XMPzNA,6755
+django/contrib/admindocs/locale/ro/LC_MESSAGES/django.po,sha256=b4AsPjWBYHQeThAtLP_TH4pJitwidtoPNkJ7dowUuRg,7476
+django/contrib/admindocs/locale/ru/LC_MESSAGES/django.mo,sha256=9pIPv2D0rq29vrBNWZENM_SOdNpaPidxmgT20hWtBis,8434
+django/contrib/admindocs/locale/ru/LC_MESSAGES/django.po,sha256=BTlxkS4C0DdfC9QJCegXwi5ejfG9pMsAdfy6UJzec3s,9175
+django/contrib/admindocs/locale/sk/LC_MESSAGES/django.mo,sha256=QR3Yvh6y6qJLr4umB0_HcVRIrqD-o1z3rnDv38hLkCQ,6670
+django/contrib/admindocs/locale/sk/LC_MESSAGES/django.po,sha256=QPTSNtN-7QBUX7G7d67zs5kPHS3tXoi7WCy_y1nhPfQ,7375
+django/contrib/admindocs/locale/sl/LC_MESSAGES/django.mo,sha256=FMg_s9ZpeRD42OsSF9bpe8pRQ7wP7-a9WWnaVliqXpU,6508
+django/contrib/admindocs/locale/sl/LC_MESSAGES/django.po,sha256=JWO_WZAwBpXw-4FoB7rkWXGhi9aEVq1tH2fOC69rcgg,7105
+django/contrib/admindocs/locale/sq/LC_MESSAGES/django.mo,sha256=OILplcoIos3lKv8349AIi9w6_ulYfnS1GZoF775Syh4,6561
+django/contrib/admindocs/locale/sq/LC_MESSAGES/django.po,sha256=K9t4P0o9nZfMfqUL4VOOEgw-70i55Gji_fl0517jogc,7180
+django/contrib/admindocs/locale/sr/LC_MESSAGES/django.mo,sha256=wQbXQFTFYjeJvUQ4twmF_O2SYkYkigJ1LQj8xdC5Yu4,8154
+django/contrib/admindocs/locale/sr/LC_MESSAGES/django.po,sha256=KT72y37njw6vgAfXOoY41w_Myv5yrzFC1BQVAd_V79s,8778
+django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=3ytn9SeRgnbIC8YjYTcgdNKgNrizzDwwmLQhVwjvNCY,6542
+django/contrib/admindocs/locale/sr_Latn/LC_MESSAGES/django.po,sha256=2ojglF82ZPFxdnlICYkwkN_EOLli8QRSCPTbILxug9g,13364
+django/contrib/admindocs/locale/sv/LC_MESSAGES/django.mo,sha256=5i9qxo9V7TghSIpKCOw5PpITYYHMP-0NhFivwc-w0yw,6394
+django/contrib/admindocs/locale/sv/LC_MESSAGES/django.po,sha256=WhABV5B-rhBly6ueJPOMsIBjSiw7i1yCZUQsXWE_jV4,7137
+django/contrib/admindocs/locale/sw/LC_MESSAGES/django.mo,sha256=pyJfGL7UdPrJAVlCB3YimXxTjTfEkoZQWX-CSpDkcWc,1808
+django/contrib/admindocs/locale/sw/LC_MESSAGES/django.po,sha256=SIywrLX1UGx4OiPxoxUYelmQ1YaY2LMa3dxynGQpHp8,4929
+django/contrib/admindocs/locale/ta/LC_MESSAGES/django.mo,sha256=8SjQ9eGGyaZGhkuDoZTdtYKuqcVyEtWrJuSabvNRUVM,1675
+django/contrib/admindocs/locale/ta/LC_MESSAGES/django.po,sha256=k593yzVqpSQOsdpuF-rdsSLwKQU8S_QFMRpZXww__1A,5194
+django/contrib/admindocs/locale/te/LC_MESSAGES/django.mo,sha256=eAzNpYRy_G1erCcKDAMnJC4809ITRHvJjO3vpyAC_mk,1684
+django/contrib/admindocs/locale/te/LC_MESSAGES/django.po,sha256=oDg_J8JxepFKIe5m6lDKVC4YWQ_gDLibgNyQ3508VOM,5204
+django/contrib/admindocs/locale/tg/LC_MESSAGES/django.mo,sha256=jSMmwS6F_ChDAZDyTZxRa3YuxkXWlO-M16osP2NLRc0,7731
+django/contrib/admindocs/locale/tg/LC_MESSAGES/django.po,sha256=mewOHgRsFydk0d5IY3jy3rOWa6uHdatlSIvFNZFONsc,8441
+django/contrib/admindocs/locale/th/LC_MESSAGES/django.mo,sha256=bHK49r45Q1nX4qv0a0jtDja9swKbDHHJVLa3gM13Cb4,2167
+django/contrib/admindocs/locale/th/LC_MESSAGES/django.po,sha256=_GMgPrD8Zs0lPKQOMlBmVu1I59yXSV42kfkrHzeiehY,5372
+django/contrib/admindocs/locale/tr/LC_MESSAGES/django.mo,sha256=L1iBsNGqqfdNkZZmvnnBB-HxogAgngwhanY1FYefveE,6661
+django/contrib/admindocs/locale/tr/LC_MESSAGES/django.po,sha256=D4vmznsY4icyKLXQUgAL4WZL5TOUZYVUSCJ4cvZuFg8,7311
+django/contrib/admindocs/locale/tt/LC_MESSAGES/django.mo,sha256=pQmAQOPbrBVzBqtoQ0dsFWFwC6LxA5mQZ9QPqL6pSFw,1869
+django/contrib/admindocs/locale/tt/LC_MESSAGES/django.po,sha256=NCLv7sSwvEficUOSoMJlHGqjgjYvrvm2V3j1Gkviw80,5181
+django/contrib/admindocs/locale/udm/LC_MESSAGES/django.mo,sha256=hwDLYgadsKrQEPi9HiuMWF6jiiYUSy4y-7PVNJMaNpY,618
+django/contrib/admindocs/locale/udm/LC_MESSAGES/django.po,sha256=29fpfn4p8KxxrBdg4QB0GW_l8genZVV0kYi50zO-qKs,5099
+django/contrib/admindocs/locale/ug/LC_MESSAGES/django.mo,sha256=OIyPz5i48Ab2CVmCe71agW8qMsYMTwTG2E7rJft7P5k,7867
+django/contrib/admindocs/locale/ug/LC_MESSAGES/django.po,sha256=GM6ypRwZ6d6VXM0XVvg9p_334pxhex1yd5-HS8Z1z9U,8380
+django/contrib/admindocs/locale/uk/LC_MESSAGES/django.mo,sha256=G-3yCDj2jK7ZTu80YXGJ_ZR1E7FejbLxTFe866G4Pr0,8468
+django/contrib/admindocs/locale/uk/LC_MESSAGES/django.po,sha256=bbWzP-gpbslzbTBc_AO7WBNmtr3CkLOwkSJHI0Z_dTA,9330
+django/contrib/admindocs/locale/ur/LC_MESSAGES/django.mo,sha256=VNg9o_7M0Z2LC0n3_-iwF3zYmncRJHaFqqpxuPmMq84,1836
+django/contrib/admindocs/locale/ur/LC_MESSAGES/django.po,sha256=QTg85c4Z13hMN_PnhjaLX3wx6TU4SH4hPTzNBfNVaMU,5148
+django/contrib/admindocs/locale/vi/LC_MESSAGES/django.mo,sha256=F6dyo00yeyUND_w1Ocm9SL_MUdXb60QQpmAQPto53IU,1306
+django/contrib/admindocs/locale/vi/LC_MESSAGES/django.po,sha256=JrVKjT848Y1cS4tpH-eRivFNwM-cUs886UEhY2FkTPw,4836
+django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ngPlxN85wGOMKoo3OK3wUQeikoaxPKqAIsgw2_0ovN4,6075
+django/contrib/admindocs/locale/zh_Hans/LC_MESSAGES/django.po,sha256=TNdJGJCAi0OijBN6w23SwKieZqNqkgNt2qdlPfY-r20,6823
+django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Tx2MdoDy5aGjAGnDhYrV6mHN-inyqa3mA2zDAYPsQc4,6016
+django/contrib/admindocs/locale/zh_Hant/LC_MESSAGES/django.po,sha256=vhYxKhDRm6BkUKkLFetq1zDZ1-08Xe1xVnbUD0ABQuc,6734
+django/contrib/admindocs/middleware.py,sha256=owqLbigBtxKmhPQmz767KOAkN3nKRIJrwZAUuHRIAQM,1329
+django/contrib/admindocs/templates/admin_doc/bookmarklets.html,sha256=fSQP3eErm6R8yD7c8-KVilViI0vww6dqwkLwaAjgCaY,1282
+django/contrib/admindocs/templates/admin_doc/index.html,sha256=6bmIkahIH8CWMhGEytTHUZ7DtrDmcqhomJe48KbzvZY,1369
+django/contrib/admindocs/templates/admin_doc/missing_docutils.html,sha256=sx3z874_SIWPjKndIzfwYl8bQzEpTYMckA11RFFbqRI,788
+django/contrib/admindocs/templates/admin_doc/model_detail.html,sha256=DM5mTGfs1lEKlclSKMldLDsOoyrqRavqkR57hNM-cKE,1922
+django/contrib/admindocs/templates/admin_doc/model_index.html,sha256=sgwiE4Xxz7kcbk_UhHxgxLXyBh8SMHgHHvBucby3pPc,1358
+django/contrib/admindocs/templates/admin_doc/template_detail.html,sha256=sApk1HNa-n41lMIxRZHGoft9S4PvYedDPTtvHWuSsSc,1035
+django/contrib/admindocs/templates/admin_doc/template_filter_index.html,sha256=U2HBVHXtgCqUp9hLuOMVqCxBbXyYMMgAORG8fziN7uc,1775
+django/contrib/admindocs/templates/admin_doc/template_tag_index.html,sha256=S4U-G05yi1YIlFEv-HG20bDiq4rhdiZCgebhVBzNzdY,1731
+django/contrib/admindocs/templates/admin_doc/view_detail.html,sha256=z5o74X-5f1tGUS37-hKzY571xEcIa7U4XDqnUxewfBU,904
+django/contrib/admindocs/templates/admin_doc/view_index.html,sha256=ZLfmxMkVlPYETRFnjLmU3bagve4ZvY1Xzsya1Lntgkw,1734
+django/contrib/admindocs/urls.py,sha256=spPSD6wc_B9eABF4mEWIhPSZ3w6W4fM6ERGepo8NRtY,1309
+django/contrib/admindocs/utils.py,sha256=NYdUVzgQHASbimpZpQw0WEFn_St_9hGMeO4aTEWLuhg,8399
+django/contrib/admindocs/views.py,sha256=go2dArGToREBz__jhEhYKyW1a4aKBKMG7jvJDKnh9ic,19572
+django/contrib/auth/__init__.py,sha256=-DhzmGlN3oAkZcQPR_CuLz0cxCJJ61fVhqIqzgcAK9Q,14940
+django/contrib/auth/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/auth/__pycache__/admin.cpython-311.pyc,,
+django/contrib/auth/__pycache__/apps.cpython-311.pyc,,
+django/contrib/auth/__pycache__/backends.cpython-311.pyc,,
+django/contrib/auth/__pycache__/base_user.cpython-311.pyc,,
+django/contrib/auth/__pycache__/checks.cpython-311.pyc,,
+django/contrib/auth/__pycache__/context_processors.cpython-311.pyc,,
+django/contrib/auth/__pycache__/decorators.cpython-311.pyc,,
+django/contrib/auth/__pycache__/forms.cpython-311.pyc,,
+django/contrib/auth/__pycache__/hashers.cpython-311.pyc,,
+django/contrib/auth/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/auth/__pycache__/mixins.cpython-311.pyc,,
+django/contrib/auth/__pycache__/models.cpython-311.pyc,,
+django/contrib/auth/__pycache__/password_validation.cpython-311.pyc,,
+django/contrib/auth/__pycache__/signals.cpython-311.pyc,,
+django/contrib/auth/__pycache__/tokens.cpython-311.pyc,,
+django/contrib/auth/__pycache__/urls.cpython-311.pyc,,
+django/contrib/auth/__pycache__/validators.cpython-311.pyc,,
+django/contrib/auth/__pycache__/views.cpython-311.pyc,,
+django/contrib/auth/admin.py,sha256=FVdusKgPDsYTTWZyXKZRklbWStLHo-bO_Eea2_n_zag,10378
+django/contrib/auth/apps.py,sha256=qpjjFdMH0H3-ialZrRYQ5fnmfCuSh0RiD3bsKzzTEeY,1284
+django/contrib/auth/backends.py,sha256=tuoMSIJ87IQjYMVq8RoznU5Bn3Wytg4s_hEv35SKrh8,12967
+django/contrib/auth/base_user.py,sha256=id-h7igTZ-LNhkA2tF6R9MRz1JzBwwXVhh4MhofVVSs,5043
+django/contrib/auth/checks.py,sha256=yXWvy6kUyj4WfDlkDBtybwEFKuqvNhT9rqHj4FCdTlA,9847
+django/contrib/auth/common-passwords.txt.gz,sha256=PBuu1iWW3jaGCCTrP0NtWTLTfKiwblnfePWkTsF1r-Q,80228
+django/contrib/auth/context_processors.py,sha256=8BbvdbTVPl8GVgB5-2LTzx6FrGsMzev-E7JMnUgr-rM,1911
+django/contrib/auth/decorators.py,sha256=UUuJ1linbJLUpj2fEYIXt3lcF7Uo4KGaEP5EdomykFQ,4760
+django/contrib/auth/forms.py,sha256=TsKiVEQTdbb6uCJzGl-31gsQk5l1SpHLCAkJynzntqc,21496
+django/contrib/auth/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/auth/handlers/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/auth/handlers/__pycache__/modwsgi.cpython-311.pyc,,
+django/contrib/auth/handlers/modwsgi.py,sha256=bTXKVMezywsn1KA2MVyDWeHvTNa2KrwIxn2olH7o_5I,1248
+django/contrib/auth/hashers.py,sha256=EuewAkS82YniqmRsrV2IT3ttZ761oG7JBHMUVpeIZ5I,23335
+django/contrib/auth/locale/af/LC_MESSAGES/django.mo,sha256=NWVSVHPiDi8XdIWVVBOvlN8a-l94hzvN7DNObsL8Nu4,8449
+django/contrib/auth/locale/af/LC_MESSAGES/django.po,sha256=wv4Ls1PSlHA-ZOaC1v5CpNvPxseAZxRLtQc5lITYf0Q,8647
+django/contrib/auth/locale/ar/LC_MESSAGES/django.mo,sha256=7LhxFfL9y6RAfZ8PU-1lKI2V02LbHxXtB1UAf_vXpuc,10040
+django/contrib/auth/locale/ar/LC_MESSAGES/django.po,sha256=2QIaioY0RedAB0CFKVZLhGoCnhLzgUh84sAR7i6QUnQ,10520
+django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=0UokSPc3WDs_0PozSalfBaq4JFYgF1Rt7b90CKvY5jE,10228
+django/contrib/auth/locale/ar_DZ/LC_MESSAGES/django.po,sha256=GDvm2m1U7NOY5l7FijKGR77DEZt6rYWoSPCxsY5BZ3Y,10574
+django/contrib/auth/locale/ast/LC_MESSAGES/django.mo,sha256=Pt3gYY3j8Eroo4lAEmf-LR6u9U56mpE3vqLhjR4Uq-o,2250
+django/contrib/auth/locale/ast/LC_MESSAGES/django.po,sha256=Kiq4s8d1HnYpo3DQGlgUl3bOkxmgGW8CvGp9AbryRk8,5440
+django/contrib/auth/locale/az/LC_MESSAGES/django.mo,sha256=aurC_qQHn_eYEZua_XqOKfdewPMdnoCtKAaRhvtXUUs,8698
+django/contrib/auth/locale/az/LC_MESSAGES/django.po,sha256=xBo_YtCKZnDJC3dRIOTFT_-PfqYHJDSxeny-8hCYFsA,9067
+django/contrib/auth/locale/be/LC_MESSAGES/django.mo,sha256=pfjr2I68XQmUNPToGF5yobnF4OFMfId0oaS24xh_lGQ,11397
+django/contrib/auth/locale/be/LC_MESSAGES/django.po,sha256=BKMBca3ELFFPewdRX4OjrF1MzpSHzQDQmcjphJ_AAao,11691
+django/contrib/auth/locale/bg/LC_MESSAGES/django.mo,sha256=qChURIcNm50ePM5nO-Rh44LO-f8ww7lUro0GQRXE_wY,10717
+django/contrib/auth/locale/bg/LC_MESSAGES/django.po,sha256=9Uo19-kzj6jTyvKGyWFk4KdqbXwZOvX4rucEJXRJFGE,11221
+django/contrib/auth/locale/bn/LC_MESSAGES/django.mo,sha256=cJSawQn3rNh2I57zK9vRi0r1xc598Wr26AyHh6D50ZQ,5455
+django/contrib/auth/locale/bn/LC_MESSAGES/django.po,sha256=5Vqd4n9ab98IMev4GHLxpO7f4r9nnhC3Nfx27HQNd8s,7671
+django/contrib/auth/locale/br/LC_MESSAGES/django.mo,sha256=nxLj88BBhT3Hudev1S_BRC8P6Jv7eoR8b6CHGt5eoPo,1436
+django/contrib/auth/locale/br/LC_MESSAGES/django.po,sha256=rFo68wfXMyju633KCAhg0Jcb3GVm3rk4opFQqI89d6Y,5433
+django/contrib/auth/locale/bs/LC_MESSAGES/django.mo,sha256=jDjP1qIs02k6RixY9xy3V7Cr6zi-henR8nDnhqNG18s,3146
+django/contrib/auth/locale/bs/LC_MESSAGES/django.po,sha256=NOICHHU8eFtltH0OBlnasz9TF0uZGZd3hMibRmn158E,5975
+django/contrib/auth/locale/ca/LC_MESSAGES/django.mo,sha256=lqiOLv_LZDLeXbJZYsrWRHzcnwd1vd00tW5Jrh-HHkY,7643
+django/contrib/auth/locale/ca/LC_MESSAGES/django.po,sha256=v-3t7bDTh1835nZnjYh3_HyN4yw4a1HyHpC3-jX79Z0,8216
+django/contrib/auth/locale/ckb/LC_MESSAGES/django.mo,sha256=JCxL4vCR76rQywGn0bbhs0DGltbj-DOF_GTjcWuk2n8,11066
+django/contrib/auth/locale/ckb/LC_MESSAGES/django.po,sha256=SdmYPkVor_sWdOnLkyclkaR52N1IiXUP-0i7xjZs2hk,11254
+django/contrib/auth/locale/cs/LC_MESSAGES/django.mo,sha256=BXWVPB6GeisxXPEq8Pn8wBw9ByZIW-JQAPomzzzx3vo,8888
+django/contrib/auth/locale/cs/LC_MESSAGES/django.po,sha256=Of36j3TXudwYp8to5RpuAoi-_zLcGHIRNkxcDG91AqA,9367
+django/contrib/auth/locale/cy/LC_MESSAGES/django.mo,sha256=lSfCwEVteW4PDaiGKPDxnSnlDUcGMkPfsxIluExZar0,4338
+django/contrib/auth/locale/cy/LC_MESSAGES/django.po,sha256=-LPAKGXNzB77lVHfCRmFlH3SUaLgOXk_YxfC0BomcEs,6353
+django/contrib/auth/locale/da/LC_MESSAGES/django.mo,sha256=gHZ0OYN9o5qBRsulKkfdUIDq1uyuZVM6nKEXEow2gLY,8461
+django/contrib/auth/locale/da/LC_MESSAGES/django.po,sha256=Y_kt-VEeqLJsTiuHGLoRPO6iap5Zee6rsAFgQJrA-6U,8916
+django/contrib/auth/locale/de/LC_MESSAGES/django.mo,sha256=Ke4MVWwMVQxXeJfDpem01ZcpH5mHSjTyWfDjYnNqqiY,7138
+django/contrib/auth/locale/de/LC_MESSAGES/django.po,sha256=q2wPnyx_xnMEgDGhh-nwHwb4z1tzZE_3eAU6BO3ItrE,8437
+django/contrib/auth/locale/dsb/LC_MESSAGES/django.mo,sha256=HhQfp6gYGCqoRXs20WcY23tEfxEQasQ4KmBbPc0C8_U,9231
+django/contrib/auth/locale/dsb/LC_MESSAGES/django.po,sha256=C0ISLaZtrZfakhpVuZSsmi9YpZOaMPCBE4lq25niHuY,9505
+django/contrib/auth/locale/el/LC_MESSAGES/django.mo,sha256=KaP9RLYThwYWLBx0W90HI0zJZ09iNhZ3tk8UVF63n74,10072
+django/contrib/auth/locale/el/LC_MESSAGES/django.po,sha256=O5JsNCUNr1YcNNqMugoM5epN6nC5pgq3E6nKXDh3OY0,10795
+django/contrib/auth/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/auth/locale/en/LC_MESSAGES/django.po,sha256=RvU9DEhUirOa_bD__B4R2KYfUfcyUsSgQb5jizUuboQ,8634
+django/contrib/auth/locale/en_AU/LC_MESSAGES/django.mo,sha256=7cPKOZX0ZmWCYU2ZwgCp8LwXj7FAdP3lMoI2u4nzgeU,7183
+django/contrib/auth/locale/en_AU/LC_MESSAGES/django.po,sha256=92Q42wfwKhGxDkomv8JlGBHVUdFIc_wvm_LUNBc9Q1k,7467
+django/contrib/auth/locale/en_GB/LC_MESSAGES/django.mo,sha256=p57gDaYVvgEk1x80Hq4Pn2SZbsp9ly3XrJ5Ttlt2yOE,3179
+django/contrib/auth/locale/en_GB/LC_MESSAGES/django.po,sha256=-yDflw5-81VOlyqkmLJN17FRuwDrhYXItFUJwx2aqpE,5787
+django/contrib/auth/locale/eo/LC_MESSAGES/django.mo,sha256=OCEu7qwKb20Cq2UO-dmHjNPXRfDTsQHp9DbyVXCxNMw,7421
+django/contrib/auth/locale/eo/LC_MESSAGES/django.po,sha256=wrvLqKIJycioUFAI7GkCRtDNZ9_OigG_Bf79Dmgpa7c,7868
+django/contrib/auth/locale/es/LC_MESSAGES/django.mo,sha256=r8FsShCiRBnr79dZsl29sAhUZ94uBJoyM8COWoAL3QI,9047
+django/contrib/auth/locale/es/LC_MESSAGES/django.po,sha256=VUF9BtuIn0iNZ6AcF1UYSrhqs55Gd7YkDvwlRkoUdC0,9857
+django/contrib/auth/locale/es_AR/LC_MESSAGES/django.mo,sha256=HFBDVYURht_16OeEXDmwV-z_xYemGMj7E-7ytjbG6Cc,9177
+django/contrib/auth/locale/es_AR/LC_MESSAGES/django.po,sha256=k6B9nQkO5pXiChw_-2kOHEgIwe3kA22aG46hHqvc0Z8,9414
+django/contrib/auth/locale/es_CO/LC_MESSAGES/django.mo,sha256=K5VaKTyeV_WoKsLR1x8ZG4VQmk3azj6ZM8Phqjs81So,6529
+django/contrib/auth/locale/es_CO/LC_MESSAGES/django.po,sha256=qJywTaYi7TmeMB1sjwsiwG8GXtxAOaOX0voj7lLVZRw,7703
+django/contrib/auth/locale/es_MX/LC_MESSAGES/django.mo,sha256=dCav1yN5q3bU4PvXZd_NxHQ8cZ9KqQCiNoe4Xi8seoY,7822
+django/contrib/auth/locale/es_MX/LC_MESSAGES/django.po,sha256=_4un21ALfFsFaqpLrkE2_I18iEfJlcAnd_X8YChfdWo,8210
+django/contrib/auth/locale/es_VE/LC_MESSAGES/django.mo,sha256=GwpZytNHtK7Y9dqQKDiVi4SfA1AtPlk824_k7awqrdI,7415
+django/contrib/auth/locale/es_VE/LC_MESSAGES/django.po,sha256=G3mSCo_XGRUfOAKUeP_UNfWVzDPpbQrVYQt8Hv3VZVM,7824
+django/contrib/auth/locale/et/LC_MESSAGES/django.mo,sha256=Y1eOo4oF0ibCMrZr3PyLleQqFrXNIn_m1GeaIt9eIbY,8312
+django/contrib/auth/locale/et/LC_MESSAGES/django.po,sha256=Xn40JVNZUawXfmokf8yof20OTsf_1Zr5dRv0PJdZC5Y,8780
+django/contrib/auth/locale/eu/LC_MESSAGES/django.mo,sha256=aQfIMZ8FRzP-6OpZCpC2qrd4wbyWiapJOVIWlmyqde0,7181
+django/contrib/auth/locale/eu/LC_MESSAGES/django.po,sha256=AP53NIzFy-aCLnLds70LMg-XW7F_95VSD1ZWCedgkTI,7732
+django/contrib/auth/locale/fa/LC_MESSAGES/django.mo,sha256=yeA_5LAPu7OyQssunvUNlH07bPVCyGLpnvijNenrtHQ,8979
+django/contrib/auth/locale/fa/LC_MESSAGES/django.po,sha256=NChJSgpkXrwAiTrCJzvwlm9mh-LFSD1rR1ESdRQD43o,9513
+django/contrib/auth/locale/fi/LC_MESSAGES/django.mo,sha256=BD1S-C1KhY-iXIYf-xBOAq-w7UGEznmEhN2DU7yurXo,8209
+django/contrib/auth/locale/fi/LC_MESSAGES/django.po,sha256=KZ3oSpzHbFmYwjkw-SMJe99gvYrUuiS2_I-RmOxq3Iw,8650
+django/contrib/auth/locale/fr/LC_MESSAGES/django.mo,sha256=ulghoa4OlMI5ZDdzGt8zP2PKySj-y1mPrlhADNYxLpI,9476
+django/contrib/auth/locale/fr/LC_MESSAGES/django.po,sha256=bE_orNW4bKebN_Af8FoVCSlYj4VegE68wj7aNfSCCqo,9816
+django/contrib/auth/locale/fy/LC_MESSAGES/django.mo,sha256=95N-77SHF0AzQEer5LuBKu5n5oWf3pbH6_hQGvDrlP4,476
+django/contrib/auth/locale/fy/LC_MESSAGES/django.po,sha256=8XOzOFx-WerF7whzTie03hgO-dkbUFZneyrpZtat5JY,3704
+django/contrib/auth/locale/ga/LC_MESSAGES/django.mo,sha256=UblN6hhEtT4qBKfH-aMdUKXqOCELTZHp3sCZ8ECxPFM,9476
+django/contrib/auth/locale/ga/LC_MESSAGES/django.po,sha256=X1399hXdhaQLsVQvOr98GYPBWX9l1hY28-SjpT2Ma4Q,9891
+django/contrib/auth/locale/gd/LC_MESSAGES/django.mo,sha256=BLBYJV9Adx1BsXZaM0qZ54mNRAF5s4dxB1TBLtIyMHQ,8743
+django/contrib/auth/locale/gd/LC_MESSAGES/django.po,sha256=rqPK26mtE_U-TG2qyjc5xCR-feI3sGXZR5H6ohNzx4s,9099
+django/contrib/auth/locale/gl/LC_MESSAGES/django.mo,sha256=qjbLeq5odyj41qAscDyJxdZw1AtCXubp1r-wgXkoNpY,8757
+django/contrib/auth/locale/gl/LC_MESSAGES/django.po,sha256=2FXIgJXWmSzzZM5NBW0zr20iv2h1Z0_5qOg6Ez1c5BI,9160
+django/contrib/auth/locale/he/LC_MESSAGES/django.mo,sha256=jUw9NUWUPuCUFURILUDZJdiqHsZZ8X2UyKWnbRpmKYs,9108
+django/contrib/auth/locale/he/LC_MESSAGES/django.po,sha256=lytdeP1YOO6l7dJmKEiSSVGhQcPluz0OAnh07D3N5mI,9698
+django/contrib/auth/locale/hi/LC_MESSAGES/django.mo,sha256=7CxV1H37hMbgKIhnAWx-aJmipLRosJe1qg8BH2CABfw,5364
+django/contrib/auth/locale/hi/LC_MESSAGES/django.po,sha256=DU5YM6r1kd5fo40yqFXzEaNh42ezFQFQ-0dmVqkaKQ0,7769
+django/contrib/auth/locale/hr/LC_MESSAGES/django.mo,sha256=GEap3QClwCkuwQZKJE7qOZl93RRxmyyvTTnOTYaAWUo,5894
+django/contrib/auth/locale/hr/LC_MESSAGES/django.po,sha256=ALftoYSaI1U90RNDEvnaFATbw1SL0m8fNXAyl6DkSvo,7355
+django/contrib/auth/locale/hsb/LC_MESSAGES/django.mo,sha256=UGCU7rmCKxWPEfVFnEOtL6h56g_MDA-dcY_USyVJh40,9028
+django/contrib/auth/locale/hsb/LC_MESSAGES/django.po,sha256=HwyPeAaUK3DvSXIkJxjv9vgbk-cIFwpeH_raMRA4OOc,9281
+django/contrib/auth/locale/hu/LC_MESSAGES/django.mo,sha256=sLpLRIUx2raYIJjv9H2agJu68RYArbm3IXJ_qEqDWwk,7407
+django/contrib/auth/locale/hu/LC_MESSAGES/django.po,sha256=VlsFxrXj0mF9s_shT2WHXco0vJWViYrFGSRSwqwl5WA,8468
+django/contrib/auth/locale/hy/LC_MESSAGES/django.mo,sha256=zoLe0EqIH8HQYC5XAWd8b8mA2DpbmDSEBsF-WIKX_OQ,8001
+django/contrib/auth/locale/hy/LC_MESSAGES/django.po,sha256=wIWLbz6f0n44ZcjEbZZsgoWTpzXRGND15hudr_DQ3l0,8787
+django/contrib/auth/locale/ia/LC_MESSAGES/django.mo,sha256=OTxh6u0QmsytMrp8IKWBwMnhrYCpyS6qVnF7YBCAWe0,7626
+django/contrib/auth/locale/ia/LC_MESSAGES/django.po,sha256=ue4RXEXweO1-9sZOKkLZsyZe8yxnPWB3JZyyh3qzmlA,7895
+django/contrib/auth/locale/id/LC_MESSAGES/django.mo,sha256=a2twizqS6B6elAjOcI17lxCt283LXyBIojmy3IxJTPk,8210
+django/contrib/auth/locale/id/LC_MESSAGES/django.po,sha256=Cqbn2SQLzFUNpSiWaxkMqrOxi3ytVKZIn4ofoFwIJ1Y,8617
+django/contrib/auth/locale/io/LC_MESSAGES/django.mo,sha256=YwAS3aWljAGXWcBhGU_GLVuGJbHJnGY8kUCE89CPdks,464
+django/contrib/auth/locale/io/LC_MESSAGES/django.po,sha256=W36JXuA1HQ72LspixRxeuvxogVxtk7ZBbT0VWI38_oM,3692
+django/contrib/auth/locale/is/LC_MESSAGES/django.mo,sha256=0PBYGqQKJaAG9m2jmJUzcqRVPc16hCe2euECMCrNGgI,7509
+django/contrib/auth/locale/is/LC_MESSAGES/django.po,sha256=o6dQ8WMuPCw4brSzKUU3j8PYhkLBO7XQ3M7RlsIw-VY,7905
+django/contrib/auth/locale/it/LC_MESSAGES/django.mo,sha256=pcBcdOXLqT4shr7Yw5l-pxfYknJyDW6d-jGtkncl24E,7862
+django/contrib/auth/locale/it/LC_MESSAGES/django.po,sha256=f03_tMPiwLF1ZyWfnB_j2vhPR1AXkborGQS2Tbxufzk,8471
+django/contrib/auth/locale/ja/LC_MESSAGES/django.mo,sha256=Z6Cd-iIsPq0ACMDi3RXFZ5zWrdgxiKA_3TLoZ5UBzvw,9193
+django/contrib/auth/locale/ja/LC_MESSAGES/django.po,sha256=kz89aPPw1olSjsua4TY7jZ625wV3tjbCY2rwqm4hmq8,9519
+django/contrib/auth/locale/ka/LC_MESSAGES/django.mo,sha256=4aJoE1O5jfm5MI7kBqymzb-xOKLDw2mJD5-VhezlMA8,10372
+django/contrib/auth/locale/ka/LC_MESSAGES/django.po,sha256=hvmbD3RS3lOFj2h7A3m23asktwM5zbCdRvs7YvesAkI,11163
+django/contrib/auth/locale/kab/LC_MESSAGES/django.mo,sha256=9qKeQ-gDByoOdSxDpSbLaM4uSP5sIi7qlTn8tJidVDs,2982
+django/contrib/auth/locale/kab/LC_MESSAGES/django.po,sha256=8cq5_rjRXPzTvn1jPo6H_Jcrv6IXkWr8n9fTPvghsS8,5670
+django/contrib/auth/locale/kk/LC_MESSAGES/django.mo,sha256=RJablrXpRba6YVB_8ACSt2q_BjmxrHQZzX6RxMJImlA,3542
+django/contrib/auth/locale/kk/LC_MESSAGES/django.po,sha256=OebwPN9iWBvjDu0P2gQyBbShvIFxFIqCw8DpKuti3xk,6360
+django/contrib/auth/locale/km/LC_MESSAGES/django.mo,sha256=FahcwnCgzEamtWcDEPOiJ4KpXCIHbnSowfSRdRQ2F9U,2609
+django/contrib/auth/locale/km/LC_MESSAGES/django.po,sha256=lvRHHIkClbt_8-9Yn0xY57dMxcS72z4sUkxLb4cohP0,5973
+django/contrib/auth/locale/kn/LC_MESSAGES/django.mo,sha256=u0YygqGJYljBZwI9rm0rRk_DdgaBEMA1etL-Lk-7Mls,4024
+django/contrib/auth/locale/kn/LC_MESSAGES/django.po,sha256=J67MIAas5egVq_FJBNsug3Y7rZ8KakhQt6isyF23HAA,6957
+django/contrib/auth/locale/ko/LC_MESSAGES/django.mo,sha256=xIy4Oxw06RtGBetkMuFtU3ARnbCPaDnIx3tzwmJCZDA,8634
+django/contrib/auth/locale/ko/LC_MESSAGES/django.po,sha256=oxmOpmL0nlCDDhb20V1sISdCYrny-3S7HDQC_OeEAdc,9433
+django/contrib/auth/locale/ky/LC_MESSAGES/django.mo,sha256=mnBXtpInYxaSNIURJTmx8uBg_PH-NuPN9r54pkQY3q4,8924
+django/contrib/auth/locale/ky/LC_MESSAGES/django.po,sha256=7FeO_Kb2er0S84KnFeXVHO3TgAmEJ0gTQEDHImoxiZ4,9170
+django/contrib/auth/locale/lb/LC_MESSAGES/django.mo,sha256=OFhpMA1ZXhrs5fwZPO5IjubvWDiju4wfwWiV94SFkiA,474
+django/contrib/auth/locale/lb/LC_MESSAGES/django.po,sha256=dOfY9HjTfMQ0nkRYumw_3ZaywbUrTgT-oTXAnrRyfxo,3702
+django/contrib/auth/locale/lt/LC_MESSAGES/django.mo,sha256=-nlZHl7w__TsFUmBb5pQV_XJtKGsi9kzP6CBZXkfM8M,8146
+django/contrib/auth/locale/lt/LC_MESSAGES/django.po,sha256=-rdhB6eroSSemsdZkG1Jl4CruNZc_7dj4m5IVoyRBUQ,8620
+django/contrib/auth/locale/lv/LC_MESSAGES/django.mo,sha256=imL8anuTbmYE5IJldAcqK7F3XKTvm0FlvQT5C0jxgVg,8720
+django/contrib/auth/locale/lv/LC_MESSAGES/django.po,sha256=XOBWeBomoQZj7XUBOecJFPQpkFwfo3QmxkOW03KGjSk,9250
+django/contrib/auth/locale/mk/LC_MESSAGES/django.mo,sha256=XS9dslnD_YBeD07P8WQkss1gT7GIV-qLiCx4i5_Vd_k,9235
+django/contrib/auth/locale/mk/LC_MESSAGES/django.po,sha256=QOLgcwHub9Uo318P2z6sp69MI8syIIWCcr4VOom9vfs,9799
+django/contrib/auth/locale/ml/LC_MESSAGES/django.mo,sha256=UEaqq7nnGvcZ8vqFicLiuqsuEUhEjd2FpWfyzy2HqdU,12611
+django/contrib/auth/locale/ml/LC_MESSAGES/django.po,sha256=xBROIwJb5h2LmyBLAafZ2tUlPVTAOcMgt-olq5XnPT8,13107
+django/contrib/auth/locale/mn/LC_MESSAGES/django.mo,sha256=hBYT0p3LcvIKKPtIn2NzPk_2di9L8jYrUt9j3TcVvaY,9403
+django/contrib/auth/locale/mn/LC_MESSAGES/django.po,sha256=R3wAEwnefEHZsma8J-XOn4XlLtuWYKDPLwJ99DUYmvE,9913
+django/contrib/auth/locale/mr/LC_MESSAGES/django.mo,sha256=c_W1FsdevGBCJfpcY4MmgSPGUGqFAqWArpXhldn9MA8,10430
+django/contrib/auth/locale/mr/LC_MESSAGES/django.po,sha256=x8RUK6Bymg2o3YDREqEZvaLpw2PIzMbXaQhJqpyGpLA,11068
+django/contrib/auth/locale/ms/LC_MESSAGES/django.mo,sha256=eCAZrzQxsM_pAxr_XQo2fIOsCbj5LjGKpLNCzob2l-I,7654
+django/contrib/auth/locale/ms/LC_MESSAGES/django.po,sha256=FAtyzSGcD1mIhRIg8O_1SHLdisTPGYZK-QUjzgw-wCY,7847
+django/contrib/auth/locale/my/LC_MESSAGES/django.mo,sha256=gYzFJKi15RbphgG1IHbJF3yGz3P2D9vaPoHZpA7LoH8,1026
+django/contrib/auth/locale/my/LC_MESSAGES/django.po,sha256=lH5mrq-MyY8gvrNkH2_20rkjFnbviq23wIUqIjPIgFI,5130
+django/contrib/auth/locale/nb/LC_MESSAGES/django.mo,sha256=vLJ9F73atlexwVRzZJpQjcB9arodHIMCh-z8lP5Ah9w,7023
+django/contrib/auth/locale/nb/LC_MESSAGES/django.po,sha256=c3sTCdzWGZgs94z9dIIpfrFuujBuvWvQ-P0gb1tuqlA,7520
+django/contrib/auth/locale/ne/LC_MESSAGES/django.mo,sha256=pq8dEr1ugF5ldwkCDHOq5sXaXV31InbLHYyXU56U_Ao,7722
+django/contrib/auth/locale/ne/LC_MESSAGES/django.po,sha256=bV-uWvT1ViEejrbRbVTtwC2cZVD2yX-KaESxKBnxeRI,8902
+django/contrib/auth/locale/nl/LC_MESSAGES/django.mo,sha256=mVnVHcT_txoSb49PFTXxGVjtdv6Anmo77Ut7YuXuYU8,8654
+django/contrib/auth/locale/nl/LC_MESSAGES/django.po,sha256=VIN_7kSM-4gJVypjnpuGTvYdtZRHDkpFWtuHnZi1TBQ,9445
+django/contrib/auth/locale/nn/LC_MESSAGES/django.mo,sha256=83HdNOuNQVgJXBZMytPz1jx3wWDy8-e6t_JNEUu6W8w,7147
+django/contrib/auth/locale/nn/LC_MESSAGES/django.po,sha256=4ciwQsZFYSV6CjFqzxxcESAm16huv9XyXvU-nchD-Fs,7363
+django/contrib/auth/locale/os/LC_MESSAGES/django.mo,sha256=DVsYGz-31nofEjZla4YhM5L7qoBnQaYnZ4TBki03AI4,4434
+django/contrib/auth/locale/os/LC_MESSAGES/django.po,sha256=Akc1qelQWRA1DE6xseoK_zsY7SFI8SpiVflsSTUhQLw,6715
+django/contrib/auth/locale/pa/LC_MESSAGES/django.mo,sha256=PeOLukzQ_CZjWBa5FGVyBEysat4Gwv40xGMS29UKRww,3666
+django/contrib/auth/locale/pa/LC_MESSAGES/django.po,sha256=7ts9PUSuvfXGRLpfyVirJLDtsQcsVWFXDepVKUVlmtc,6476
+django/contrib/auth/locale/pl/LC_MESSAGES/django.mo,sha256=_xhEgW-4NhOazRhEks9adSOTszToETMue9pStxQ176Y,9051
+django/contrib/auth/locale/pl/LC_MESSAGES/django.po,sha256=9TbY6EwYHBTM-ma6PEojKrOtgNcpfN_mzKwGkWEiYxw,9882
+django/contrib/auth/locale/pt/LC_MESSAGES/django.mo,sha256=BFQO47aJJ7eFxTNEJvrzMDZVYOjSWFhY69YsDpr3c7M,7752
+django/contrib/auth/locale/pt/LC_MESSAGES/django.po,sha256=5MDM4MjVLxcyGMXJvZgATyJJT-oQeNPNuL_Cw6thBHs,8722
+django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.mo,sha256=qCh8MevuIljap5aKrUKxQG4ogccFKYjPWp8P3AT0qbE,8731
+django/contrib/auth/locale/pt_BR/LC_MESSAGES/django.po,sha256=HuL-Hm1uSVKB3RiMCFAnTG0sXpFIkqUfHQnS1F71jPY,9883
+django/contrib/auth/locale/ro/LC_MESSAGES/django.mo,sha256=GD04tb5R6nEeD6ZMAcZghVhXwr8en1omw0c6BxnyHas,7777
+django/contrib/auth/locale/ro/LC_MESSAGES/django.po,sha256=YfkFuPrMwAR50k6lfOYeBbMosEbvXGWwMBD8B7p_2ZA,8298
+django/contrib/auth/locale/ru/LC_MESSAGES/django.mo,sha256=779-Y2kUPXSHeKlEIjWfDHnAeByTb8Lq65BcYPsdqY0,11813
+django/contrib/auth/locale/ru/LC_MESSAGES/django.po,sha256=GI2Mg_feXrD__59ttNSM9ONLK1P8O0VDGGmXFD8GAEo,12387
+django/contrib/auth/locale/sk/LC_MESSAGES/django.mo,sha256=mzMvDkcL8ueIUDA7ruFhaYZQQDSPIbIWAQXEMjKlF5M,8810
+django/contrib/auth/locale/sk/LC_MESSAGES/django.po,sha256=ic0SURQkUV5cC7E6GWtVSkX6YJLhn6hZFboAnpd9DaI,9244
+django/contrib/auth/locale/sl/LC_MESSAGES/django.mo,sha256=_Lx1YcW4tvCpsXXXmcCMhrttpLR4389330tnB1ycCok,7659
+django/contrib/auth/locale/sl/LC_MESSAGES/django.po,sha256=MPEv4Ac5MwcywffmPyLxAzSMLLX1cOdZevPlpIMju28,8136
+django/contrib/auth/locale/sq/LC_MESSAGES/django.mo,sha256=LyP18Ccjd95ki9TVS6YFB3JBeI-U3n0LsOuOWKcXuyc,8601
+django/contrib/auth/locale/sq/LC_MESSAGES/django.po,sha256=hNjXCLEYeWQBhZnPnBdnqoZH5G8X9vsziBDCBt1gRfw,9119
+django/contrib/auth/locale/sr/LC_MESSAGES/django.mo,sha256=RrU2j_5yXCZg61pDapjroO-viDsYpaUP5T_OaFFFxqg,11140
+django/contrib/auth/locale/sr/LC_MESSAGES/django.po,sha256=drf10o62z9XQS534lRvzf5f74tCEHnBeeawFxEM-B9o,11426
+django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=F028YhZ96X5koQPOWpU5fJf4-kmzI1GpL6w9Hcw7iSw,8709
+django/contrib/auth/locale/sr_Latn/LC_MESSAGES/django.po,sha256=2lrhF8H-IOscG9evw3Evwrh9N6YV5EWgnK6apM441tg,12220
+django/contrib/auth/locale/sv/LC_MESSAGES/django.mo,sha256=PMPS8W5N_9JLM6oHihaMO5F3iplcrD8tE8d9SNDY6Ck,8512
+django/contrib/auth/locale/sv/LC_MESSAGES/django.po,sha256=Y9c2-A-WE3XM3SiLtJvilE453PipxewrKPWxhhhQ71Q,9332
+django/contrib/auth/locale/sw/LC_MESSAGES/django.mo,sha256=I_lEsKuMGm07X1vM3-ReGDx2j09PGLkWcG0onC8q1uQ,5029
+django/contrib/auth/locale/sw/LC_MESSAGES/django.po,sha256=TiZS5mh0oN0e6dFEdh-FK81Vk-tdv35ngJ-EbM1yX80,6455
+django/contrib/auth/locale/ta/LC_MESSAGES/django.mo,sha256=T1t5CKEb8hIumvbOtai-z4LKj2et8sX-PgBMd0B3zuA,2679
+django/contrib/auth/locale/ta/LC_MESSAGES/django.po,sha256=X8UDNmk02X9q1leNV1qWWwPNakhvNd45mCKkQ8EpZQQ,6069
+django/contrib/auth/locale/te/LC_MESSAGES/django.mo,sha256=i9hG4thA0P-Hc-S2oX7GufWFDO4Y_LF4RcdQ22cbLyE,2955
+django/contrib/auth/locale/te/LC_MESSAGES/django.po,sha256=txND8Izv2oEjSlcsx3q6l5fEUqsS-zv-sjVVILB1Bmc,6267
+django/contrib/auth/locale/tg/LC_MESSAGES/django.mo,sha256=MwdyYwC4ILX4MFsqCy46NNfPKLbW1GzRhFxMV0uIbLI,7932
+django/contrib/auth/locale/tg/LC_MESSAGES/django.po,sha256=miOPNThjHZODwjXMbON8PTMQhaCGJ0Gy6FZr6Jcj4J8,8938
+django/contrib/auth/locale/th/LC_MESSAGES/django.mo,sha256=zRpZ2xM5JEQoHtfXm2_XYdhe2FtaqH-hULJadLJ1MHU,6013
+django/contrib/auth/locale/th/LC_MESSAGES/django.po,sha256=Yhh_AQS_aM_9f_yHNNSu_3THbrU-gOoMpfiDKhkaSHo,7914
+django/contrib/auth/locale/tk/LC_MESSAGES/django.mo,sha256=5Rl2GMYL11RMSyro83E2oHNaehHjjGJKAJmp0swjV-0,7467
+django/contrib/auth/locale/tk/LC_MESSAGES/django.po,sha256=HAcou6t1zkXVrzyau7gr4i_H0DYpT5HOh9AxV-tnKD0,7763
+django/contrib/auth/locale/tr/LC_MESSAGES/django.mo,sha256=IsdDh0gI5wOscy7XAT7kgy6ECJRnkcuM5bxmHbpjkZ0,8614
+django/contrib/auth/locale/tr/LC_MESSAGES/django.po,sha256=rFlevzhhHcmj2IayjYIbv305E4CsX2Za8hsK_3B78cU,9179
+django/contrib/auth/locale/tt/LC_MESSAGES/django.mo,sha256=g4pTk8QLQFCOkU29RZvR1wOd1hkOZe_o5GV9Cg5u8N4,1371
+django/contrib/auth/locale/tt/LC_MESSAGES/django.po,sha256=owkJ7iPT-zJYkuKLykfWsw8j7O8hbgzVTOD0DVv956E,5222
+django/contrib/auth/locale/udm/LC_MESSAGES/django.mo,sha256=zey19UQmS79AJFxHGrOziExPDDpJ1AbUegbCRm0x0hM,462
+django/contrib/auth/locale/udm/LC_MESSAGES/django.po,sha256=gLVgaMGg0GA3Tey1_nWIjV1lnM7czLC0XR9NFBgL2Zk,3690
+django/contrib/auth/locale/ug/LC_MESSAGES/django.mo,sha256=JHAzVg2J_k6EZCoBps_XEsSLjOThw76WWRUvQRNIg0w,10681
+django/contrib/auth/locale/ug/LC_MESSAGES/django.po,sha256=I-XhV9UC1-Z99koZTmveH8DH8PVMCmie35aRi4jHbH8,10935
+django/contrib/auth/locale/uk/LC_MESSAGES/django.mo,sha256=FNAfNVQDFAer1sbrKY575CqUjMmAJkoWFzWoVkavz7Y,11332
+django/contrib/auth/locale/uk/LC_MESSAGES/django.po,sha256=7YSXwLnW_2sykjOx9cliVCNzVSuuU1if0zUpTEgJ-oM,12012
+django/contrib/auth/locale/ur/LC_MESSAGES/django.mo,sha256=rippTNHoh49W19c4HDUF8G5Yo3SknL3C87Afu8YXxzA,698
+django/contrib/auth/locale/ur/LC_MESSAGES/django.po,sha256=gwSd8noEwbcvDE1Q4ZsrftvoWMwhw1J15gvdtK6E9ns,4925
+django/contrib/auth/locale/uz/LC_MESSAGES/django.mo,sha256=bDkhpvduocjekq6eZiuEfWJqnIt5hQmxxoIMhLQWzqM,2549
+django/contrib/auth/locale/uz/LC_MESSAGES/django.po,sha256=tPp8tRZwSMQCQ9AyAeUDtnRfmOk54UQMwok3HH8VNSQ,5742
+django/contrib/auth/locale/vi/LC_MESSAGES/django.mo,sha256=eBMTwnpRWRj8SZVZ1tN592Re_8CPyJzuF4Vtg9IMmFw,7892
+django/contrib/auth/locale/vi/LC_MESSAGES/django.po,sha256=mOr5WgFpwztdW-pEZ4O80MGlltYQyL2cAMhz6-Esfo0,8246
+django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=buDfU6thF7o39eMCQadRxNKHprr-41PP-Qjdcp-a2m4,7741
+django/contrib/auth/locale/zh_Hans/LC_MESSAGES/django.po,sha256=qNsSA2WWmC9jrg6ABL9jVG3u95qq4ztnML4Nrh3Gugo,8507
+django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=BhEKmDsqd56EX4gUyRE3x5g4KCIUM2oK_iXlMnD2TOw,7642
+django/contrib/auth/locale/zh_Hant/LC_MESSAGES/django.po,sha256=R8bmKEhb8BSYcazprOlDcvRuvKOqZgsyos6B7NTwzvM,8075
+django/contrib/auth/management/__init__.py,sha256=eeT2I5fsnE23dtfi7UX2ZhUMJ4EeFaGBpZUYmzmuqEY,5391
+django/contrib/auth/management/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/auth/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/auth/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/auth/management/commands/__pycache__/changepassword.cpython-311.pyc,,
+django/contrib/auth/management/commands/__pycache__/createsuperuser.cpython-311.pyc,,
+django/contrib/auth/management/commands/changepassword.py,sha256=H9onbQvVwzILiRK6Cg96qGrLi8_kdjoxBVMvupX18eI,2686
+django/contrib/auth/management/commands/createsuperuser.py,sha256=cSl8FeoXYBw5DUjtnHRYmybsYIx6WztUkYjgx4ZO1XI,13576
+django/contrib/auth/middleware.py,sha256=wnWdeFXU2MA216gFh2KIJWSp8eexEuJLx7KZlprgyAY,11954
+django/contrib/auth/migrations/0001_initial.py,sha256=hFz_MZYGMy9J7yDOFl0aF-UixCbF5W12FhM-nk6rpe8,7281
+django/contrib/auth/migrations/0002_alter_permission_name_max_length.py,sha256=_q-X4Oj30Ui-w9ubqyNJxeFYiBF8H_KCne_2PvnhbP8,346
+django/contrib/auth/migrations/0003_alter_user_email_max_length.py,sha256=nVZXtNuYctwmwtY0wvWRGj1pqx2FUq9MbWM7xAAd-r8,418
+django/contrib/auth/migrations/0004_alter_user_username_opts.py,sha256=lTjbNCyam-xMoSsxN_uAdyxOpK-4YehkeilisepYNEo,880
+django/contrib/auth/migrations/0005_alter_user_last_login_null.py,sha256=efYKNdwAD91Ce8BchSM65bnEraB4_waI_J94YEv36u4,410
+django/contrib/auth/migrations/0006_require_contenttypes_0002.py,sha256=AMsW40BfFLYtvv-hXGjJAwKR5N3VE9czZIukYNbF54E,369
+django/contrib/auth/migrations/0007_alter_validators_add_error_messages.py,sha256=EV24fcMnUw-14ZZLo9A_l0ZJL5BgBAaUe-OfVPbMBC8,802
+django/contrib/auth/migrations/0008_alter_user_username_max_length.py,sha256=AoV_ZffWSBR6XRJZayAKg-KRRTkdP5hs64SzuGWiw1E,814
+django/contrib/auth/migrations/0009_alter_user_last_name_max_length.py,sha256=GaiVAOfxCKc5famxczGB-SEF91hmOzaFtg9cLaOE124,415
+django/contrib/auth/migrations/0010_alter_group_name_max_length.py,sha256=CWPtZJisCzqEMLbKNMG0pLHV9VtD09uQLxWgP_dLFM0,378
+django/contrib/auth/migrations/0011_update_proxy_permissions.py,sha256=haXd5wjcS2ER4bxxznI-z7p7H4rt7P0TCQD_d4J2VDY,2860
+django/contrib/auth/migrations/0012_alter_user_first_name_max_length.py,sha256=bO-8n4CQN2P_hJKlN6IoNu9p8iJ-GdQCUJuAmdK67LA,411
+django/contrib/auth/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/auth/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0002_alter_permission_name_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0003_alter_user_email_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0004_alter_user_username_opts.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0005_alter_user_last_login_null.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0006_require_contenttypes_0002.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0007_alter_validators_add_error_messages.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0008_alter_user_username_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0009_alter_user_last_name_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0010_alter_group_name_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0011_update_proxy_permissions.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/0012_alter_user_first_name_max_length.cpython-311.pyc,,
+django/contrib/auth/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/auth/mixins.py,sha256=Kbi6hqNy6G2qO08lvkGnRySpNv7DxbEwRP_NoCpGJQk,4652
+django/contrib/auth/models.py,sha256=gkV5y0LHL4s_5-X2fwsTzCMGayIgY0rz-YipjIo2jnU,21331
+django/contrib/auth/password_validation.py,sha256=XRmj-QRfdxLh5KpkZUwIfB31SFZfqyAlDkt0OGpUQNM,9631
+django/contrib/auth/signals.py,sha256=BFks70O0Y8s6p1fr8SCD4-yk2kjucv7HwTcdRUzVDFM,118
+django/contrib/auth/templates/auth/widgets/read_only_password_hash.html,sha256=xBoBu4pWrFdMbEzkx_5hgVqBrqtrY3YwP3ay6AmXXUo,320
+django/contrib/auth/templates/registration/password_reset_subject.txt,sha256=-TZcy_r0vArBgdPK7feeUY6mr9EkYwy7esQ62_onbBk,132
+django/contrib/auth/tokens.py,sha256=ljqQWO0dAkd45-bBJ6W85oZZU9pEjzNh3VbZfeANwxQ,4328
+django/contrib/auth/urls.py,sha256=Uh8DrSqpJXDA5a17Br9fMmIbEcgLkxdN9FvCRg-vxyg,1185
+django/contrib/auth/validators.py,sha256=VO7MyackTaTiK8OjEm7YyLtsjKrteVjdzPbNZki0irU,722
+django/contrib/auth/views.py,sha256=R5tdSTg2qH2qa1R4HC3VQ7K0xbCXW759rRTglcjBe4I,14134
+django/contrib/contenttypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/contenttypes/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/admin.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/apps.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/checks.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/fields.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/forms.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/models.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/prefetch.cpython-311.pyc,,
+django/contrib/contenttypes/__pycache__/views.cpython-311.pyc,,
+django/contrib/contenttypes/admin.py,sha256=a0KrlT8k2aPIKn54fNwCDTaAVdVr1fLY1BDz_FrE3ts,5200
+django/contrib/contenttypes/apps.py,sha256=1Q1mWjPvfYU7EaO50JvsWuDg_3uK8DoCwpvdIdT7iKY,846
+django/contrib/contenttypes/checks.py,sha256=KKB-4FOfPO60TM-uxqK8m9sIXzB3CRx7Imr-jaauM_U,1268
+django/contrib/contenttypes/fields.py,sha256=BKCM_f6WbMYRNe2E6S7no0mWoeHbKYWvD2WYLtJWJu4,31744
+django/contrib/contenttypes/forms.py,sha256=m65aJ2NHqTqL8TiSGt2EParYp5WQqacLzZXP9GU8E6U,3950
+django/contrib/contenttypes/locale/af/LC_MESSAGES/django.mo,sha256=MLTvTw6mjjOA8oY9_BrkppErc4kIsKsvRqYd6JR72vk,1048
+django/contrib/contenttypes/locale/af/LC_MESSAGES/django.po,sha256=lrAP3UmeeFb8eHbN17oypM4NbftY7B0jOtHwrlS2-oo,1268
+django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.mo,sha256=2t3y_6wxi0khsYi6s9ZyJwjRB8bnRT1PKvazWOKhJcQ,1271
+django/contrib/contenttypes/locale/ar/LC_MESSAGES/django.po,sha256=t6M3XYQLotNMFCjzB8aWFXnlRI8fU744YZvAoFdScQY,1634
+django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=upFxoSvOvdmqCvC5irRV_8yYpFidanHfRk6i3tPrFAc,1233
+django/contrib/contenttypes/locale/ar_DZ/LC_MESSAGES/django.po,sha256=jUg-4BVi0arx5v-osaUDAfM6cQgaBh7mE8Mr8aVTp5A,1447
+django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.mo,sha256=y88CPGGbwTVRmZYIipCNIWkn4OuzuxEk2QCYsBhc7RY,643
+django/contrib/contenttypes/locale/ast/LC_MESSAGES/django.po,sha256=H-qMo5ikva84ycnlmBT4XXEWhzMIw-r7J_zuqxo3wu4,1088
+django/contrib/contenttypes/locale/az/LC_MESSAGES/django.mo,sha256=eHIU-L0mRAlCpQaQzrShguFlYg5llOv89KEpj14p6-8,1058
+django/contrib/contenttypes/locale/az/LC_MESSAGES/django.po,sha256=h56r0_NK7YccHKrfBWUirSpkIBf4ckXyq1F8-YP1rvs,1375
+django/contrib/contenttypes/locale/be/LC_MESSAGES/django.mo,sha256=Kp1TpXX1v0IgGp9HZxleXJ6y5ZvMZ6AqJrSIVcDs7xA,1353
+django/contrib/contenttypes/locale/be/LC_MESSAGES/django.po,sha256=Oy5QXZBmBM_OYLT5OeXJQzTBCHXBp8NVMYuKmr_TUm0,1615
+django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.mo,sha256=IFghXuYj0yxP5j-LfRsNJXlyS2b2dUNJXD01uhUqxLg,1225
+django/contrib/contenttypes/locale/bg/LC_MESSAGES/django.po,sha256=y-OpKdDHxHDYATSmi8DAUXuhpIwgujKZUe48G8So8AU,1613
+django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.mo,sha256=2Z1GL6c1ukKQCMcls7R0_n4eNdH3YOXZSR8nCct7SLI,1201
+django/contrib/contenttypes/locale/bn/LC_MESSAGES/django.po,sha256=PLjnppx0FxfGBQMuWVjo0N4sW2QYc2DAEMK6ziGWUc8,1491
+django/contrib/contenttypes/locale/br/LC_MESSAGES/django.mo,sha256=kAlOemlwBvCdktgYoV-4NpC7XFDaIue_XN7GJYzDu88,1419
+django/contrib/contenttypes/locale/br/LC_MESSAGES/django.po,sha256=BQmHVQqOc6xJWJLeAo49rl_Ogfv-lFtx18mj82jT_to,1613
+django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.mo,sha256=klj9n7AKBkTf7pIa9m9b-itsy4UlbYPnHiuvSLcFZXY,700
+django/contrib/contenttypes/locale/bs/LC_MESSAGES/django.po,sha256=pmJaMBLWbYtYFFXYBvPEvwXkTPdjQDv2WkFI5jNGmTI,1151
+django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.mo,sha256=uYq1BXdw1AXjnLusUQfN7ox1ld6siiy41C8yKVTry7Q,1095
+django/contrib/contenttypes/locale/ca/LC_MESSAGES/django.po,sha256=-dsOzvzVzEPVvA9lYsIP-782BbtJxGRo-OHtS3fIjmU,1403
+django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.mo,sha256=_dJ-2B3tupoUHRS7HjC-EIlghIYLWebwsy4IvEXI13w,1213
+django/contrib/contenttypes/locale/ckb/LC_MESSAGES/django.po,sha256=SrQwgQTltnR7OExi6sP5JsnEOg6qDzd8dSPXjX92B-M,1419
+django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.mo,sha256=QexBQDuGdMFhVBtA9XWUs2geFBROcxyzdU_IBUGQ7x4,1108
+django/contrib/contenttypes/locale/cs/LC_MESSAGES/django.po,sha256=8pdPwZmpGOeSZjILGLZEAzqvmmV69ogpkh0c3tukT2g,1410
+django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.mo,sha256=2QyCWeXFyymoFu0Jz1iVFgOIdLtt4N1rCZATZAwiH-8,1159
+django/contrib/contenttypes/locale/cy/LC_MESSAGES/django.po,sha256=ZWDxQTHJcw1UYav1C3MX08wCFrSeJNNI2mKjzRVd6H0,1385
+django/contrib/contenttypes/locale/da/LC_MESSAGES/django.mo,sha256=EyancRrTWxM6KTpLq65gIQB0sO_PLtVr1ESN2v1pSNU,1038
+django/contrib/contenttypes/locale/da/LC_MESSAGES/django.po,sha256=J09u3IjLgv4g77Kea_WQAhevHb8DskGU-nVxyucYf_0,1349
+django/contrib/contenttypes/locale/de/LC_MESSAGES/django.mo,sha256=MGUZ4Gw8rSFjBO2OfFX9ooGGpJYwAapgNkc-GdBMXa0,1055
+django/contrib/contenttypes/locale/de/LC_MESSAGES/django.po,sha256=T5ucSqa6VyfUcoN6nFWBtjUkrSrz7wxr8t0NGTBrWow,1308
+django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.mo,sha256=QpdSZObmfb-DQZb3Oh6I1bFRnaPorXMznNZMyVIM7Hc,1132
+django/contrib/contenttypes/locale/dsb/LC_MESSAGES/django.po,sha256=_tNajamEnnf9FEjI-XBRraKjJVilwvpv2TBf9PAzPxw,1355
+django/contrib/contenttypes/locale/el/LC_MESSAGES/django.mo,sha256=1ySEbSEzhH1lDjHQK9Kv59PMA3ZPdqY8EJe6xEQejIM,1286
+django/contrib/contenttypes/locale/el/LC_MESSAGES/django.po,sha256=8rlMKE5SCLTtm1myjLFBtbEIFyuRmSrL9HS2PA7gneQ,1643
+django/contrib/contenttypes/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/contenttypes/locale/en/LC_MESSAGES/django.po,sha256=BRgOISCCJb4TU0dNxG4eeQJFe-aIe7U3GKLPip03d_Q,1110
+django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTndJxA-F1IE_nMUOtf1sRr7Kq2s_8yjgKk6mkWkVu4,486
+django/contrib/contenttypes/locale/en_AU/LC_MESSAGES/django.po,sha256=wmxyIJtz628AbsxgkB-MjdImcIJWhcW7NV3tWbDpedg,1001
+django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.mo,sha256=_uM-jg43W7Pz8RQhMcR_o15wRkDaYD8aRcl2_NFGoNs,1053
+django/contrib/contenttypes/locale/en_GB/LC_MESSAGES/django.po,sha256=SyzwSvqAgKF8BEhXYh4598GYP583OK2GUXH1lc4iDMk,1298
+django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.mo,sha256=4EgHUHPb4TuK2DKf0dWOf7rNzJNsyT8CG39SQixI0oM,1072
+django/contrib/contenttypes/locale/eo/LC_MESSAGES/django.po,sha256=gbxNuagxW01xLd3DY0Lc5UNNSlw1nEiBExzcElrB61E,1350
+django/contrib/contenttypes/locale/es/LC_MESSAGES/django.mo,sha256=KzgypFDwIlVzr_h9Dq2X8dXu3XnsbdSaHwJKJWZ6qc8,1096
+django/contrib/contenttypes/locale/es/LC_MESSAGES/django.po,sha256=Dpn9dTvdy87bVf3It8pZFOdEEKnO91bDeYyY1YujkIA,1456
+django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.mo,sha256=WkHABVDmtKidPyo6zaYGVGrgXpe6tZ69EkxaIBu6mtg,1084
+django/contrib/contenttypes/locale/es_AR/LC_MESSAGES/django.po,sha256=yVSu_fJSKwS4zTlRud9iDochIaY0zOPILF59biVfkeY,1337
+django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.mo,sha256=aACo1rOrgs_BYK3AWzXEljCdAc4bC3BXpyXrwE4lzAs,1158
+django/contrib/contenttypes/locale/es_CO/LC_MESSAGES/django.po,sha256=vemhoL-sESessGmIlHoRvtWICqF2aO05WvcGesUZBRM,1338
+django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.mo,sha256=vD9rSUAZC_rgkwiOOsrrra07Gnx7yEpNHI96tr8xD3U,840
+django/contrib/contenttypes/locale/es_MX/LC_MESSAGES/django.po,sha256=tLgjAi9Z1kZloJFVQuUdAvyiJy1J-5QHfoWmxbqQZCc,1237
+django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.mo,sha256=TVGDydYVg_jGfnYghk_cUFjCCtpGchuoTB4Vf0XJPYk,1152
+django/contrib/contenttypes/locale/es_VE/LC_MESSAGES/django.po,sha256=vJW37vuKYb_KpXBPmoNSqtNstFgCDlKmw-8iOoSCenU,1342
+django/contrib/contenttypes/locale/et/LC_MESSAGES/django.mo,sha256=TE84lZl6EP54-pgmv275jiTOW0vIsnsGU97qmtxMEVg,1028
+django/contrib/contenttypes/locale/et/LC_MESSAGES/django.po,sha256=KO9fhmRCx25VeHNDGXVNhoFx3VFH-6PSLVXZJ6ohOSA,1368
+django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.mo,sha256=K0f1cXEhfg_djPzgCL9wC0iHGWF_JGIhWGFL0Y970g0,1077
+django/contrib/contenttypes/locale/eu/LC_MESSAGES/django.po,sha256=sSuVV0o8MeWN6BxlaeKcjKA3h4H29fCo1kKEtkczEp4,1344
+django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.mo,sha256=hW3A3_9b-NlLS4u6qDnPS1dmNdn1UJCt-nihXvnXywI,1130
+django/contrib/contenttypes/locale/fa/LC_MESSAGES/django.po,sha256=TPiYsGGN-j-VD--Rentx1p-IcrNJYoYxrxDO_5xeZHI,1471
+django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.mo,sha256=dWar3g1rJAkUG1xRLlmGkH63Fy_h2YqzhMVv0Z25aWc,1036
+django/contrib/contenttypes/locale/fi/LC_MESSAGES/django.po,sha256=yALWMFU8-gFD2G0NdWqIDIenrAMUY4VCW1oi8TJXFAc,1325
+django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.mo,sha256=CTOu_JOAQeC72VX5z9cg8Bn3HtZsdgbtjA7XKcy681o,1078
+django/contrib/contenttypes/locale/fr/LC_MESSAGES/django.po,sha256=6LArEWoBpdaJa7UPcyv4HJKD3YoKUxrwGQGd16bi9DM,1379
+django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/contenttypes/locale/fy/LC_MESSAGES/django.po,sha256=SB07aEGG7n4oX_5rqHB6OnjpK_K0KwFM7YxaWYNpB_4,991
+django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.mo,sha256=7E4WYsYrAh_NhlJva_R0dYG0uX9pTKkYdKRq5seoWAA,1081
+django/contrib/contenttypes/locale/ga/LC_MESSAGES/django.po,sha256=3GcPCINXueCiHWnWJACHrkhiMB07D-36ZkuAWkEBSlo,1425
+django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.mo,sha256=dQz7j45qlY3M1rL2fCVdPnuHMUdUcJ0K6cKgRD7Js2w,1154
+django/contrib/contenttypes/locale/gd/LC_MESSAGES/django.po,sha256=_hwx9XqeX5QYRFtDpEYkChswn8WMdYTQlbzL1LjREbY,1368
+django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.mo,sha256=OS8R8sck0Q__XBw3M9brT4jOHmXYUHH71zU2a0mY0vQ,1080
+django/contrib/contenttypes/locale/gl/LC_MESSAGES/django.po,sha256=i-kmfgIuDtreavYL3mCc_BSRi-GmTklAsqE4AhP3wgk,1417
+django/contrib/contenttypes/locale/he/LC_MESSAGES/django.mo,sha256=oaxWykyc3N63WpxyHPI5CyhCTBqhM5-2Sasp_DNm1xc,1219
+django/contrib/contenttypes/locale/he/LC_MESSAGES/django.po,sha256=wCm08UMCiCa6y1-5E-7bEz-8Kd0oMRMwgzoEJjMwFyw,1486
+django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.mo,sha256=KAZuQMKOvIPj3a7GrNJE3yhT70O2abCEF2GOsbwTE5A,1321
+django/contrib/contenttypes/locale/hi/LC_MESSAGES/django.po,sha256=PcsNgu2YmT0biklhwOF_nSvoGTvWVKw2IsBxIwSVAtI,1577
+django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.mo,sha256=DbOUA8ks3phsEwQvethkwZ9-ymrd36aQ6mP7OnGdpjU,1167
+django/contrib/contenttypes/locale/hr/LC_MESSAGES/django.po,sha256=722KxvayO6YXByAmO4gfsfzyVbT-HqqrLYQsr02KDc8,1445
+django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.mo,sha256=tPtv_lIzCPIUjGkAYalnNIUxVUQFE3MShhVXTnfVx3Q,1106
+django/contrib/contenttypes/locale/hsb/LC_MESSAGES/django.po,sha256=rbI3G8ARG7DF7uEe82SYCfotBnKTRJJ641bGhjdptTQ,1329
+django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.mo,sha256=2nsylOwBIDOnkUjE2GYU-JRvgs_zxent7q3_PuscdXk,1102
+django/contrib/contenttypes/locale/hu/LC_MESSAGES/django.po,sha256=Dzcf94ZSvJtyNW9EUKpmyNJ1uZbXPvc7dIxCccZrDYc,1427
+django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.mo,sha256=hKOErB5dzj44ThQ1_nZHak2-aXZlwMoxYcDWmPb3Xo8,1290
+django/contrib/contenttypes/locale/hy/LC_MESSAGES/django.po,sha256=UeGzaghsEt9Lt5DsEzRb9KCbuphWUQwLayt4AN194ao,1421
+django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.mo,sha256=9B0XhxH0v3FvkEvS5MOHHqVbgV6KQITPrjzx1Sn76GA,1105
+django/contrib/contenttypes/locale/ia/LC_MESSAGES/django.po,sha256=NX8jpTaIhtVbVlwEsOl5aufZ80ljHZZwqtsVVozQb4M,1318
+django/contrib/contenttypes/locale/id/LC_MESSAGES/django.mo,sha256=4-6RBAvrtA1PY3LNxMrgwzBLZE0ZKwWaXa7SmtmAIyk,1031
+django/contrib/contenttypes/locale/id/LC_MESSAGES/django.po,sha256=xdxEOgfta1kaXyQAngmmbL8wDQzJU6boC9HdbmoM1iI,1424
+django/contrib/contenttypes/locale/io/LC_MESSAGES/django.mo,sha256=3SSRXx4tYiMUc00LZ9kGHuvTgaWpsICEf5G208CEqgg,1051
+django/contrib/contenttypes/locale/io/LC_MESSAGES/django.po,sha256=1ku9WPcenn47DOF05HL2eRqghZeRYfklo2huYUrkeJ0,1266
+django/contrib/contenttypes/locale/is/LC_MESSAGES/django.mo,sha256=ZYWbT4qeaco8h_J9SGF2Bs7Rdu3auZ969xZ0RQ_03go,1049
+django/contrib/contenttypes/locale/is/LC_MESSAGES/django.po,sha256=iNdghSbBVPZmfrHu52hRG8vHMgGUfOjLqie09fYcuso,1360
+django/contrib/contenttypes/locale/it/LC_MESSAGES/django.mo,sha256=GSP0BJc3bGLoNS0tnhiz_5dtSh5NXCrBiZbnwEhWbpk,1075
+django/contrib/contenttypes/locale/it/LC_MESSAGES/django.po,sha256=njEgvhDwWOc-CsGBDz1_mtEsXx2aTU6cP3jZzcLkkYk,1457
+django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.mo,sha256=tVH6RvZ5tXz56lEM3aoJtFp5PKsSR-XXpi8ZNCHjiFw,1211
+django/contrib/contenttypes/locale/ja/LC_MESSAGES/django.po,sha256=5_-Uo7Ia3X9gAWm2f72ezQnNr_pQzf6Ax4AUutULuZU,1534
+django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.mo,sha256=1_yGL68sK0QG_mhwFAVdksiDlB57_1W5QkL7NGGE5L0,1429
+django/contrib/contenttypes/locale/ka/LC_MESSAGES/django.po,sha256=6iUBbKjXsIgrq7Dj_xhxzoxItSSSKwQjIZsDayefGr8,1654
+django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.mo,sha256=SNY0vydwLyR2ExofAHjmg1A2ykoLI7vU5Ryq-QFu5Gs,627
+django/contrib/contenttypes/locale/kk/LC_MESSAGES/django.po,sha256=PU-NAl6xUEeGV0jvJx9siVBTZIzHywL7oKc4DgUjNkc,1130
+django/contrib/contenttypes/locale/km/LC_MESSAGES/django.mo,sha256=BXifukxf48Lr0t0V3Y0GJUMhD1KiHN1wwbueoK0MW1A,678
+django/contrib/contenttypes/locale/km/LC_MESSAGES/django.po,sha256=fTPlBbnaNbLZxjzJutGvqe33t6dWsEKiHQYaw27m7KQ,1123
+django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.mo,sha256=a4sDGaiyiWn-1jFozYI4vdAvuHXrs8gbZErP_SAUk9Y,714
+django/contrib/contenttypes/locale/kn/LC_MESSAGES/django.po,sha256=A6Vss8JruQcPUKQvY-zaubVZDTLEPwHsnd_rXcyzQUs,1168
+django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.mo,sha256=myRfFxf2oKcbpmCboongTsL72RTM95nEmAC938M-ckE,1089
+django/contrib/contenttypes/locale/ko/LC_MESSAGES/django.po,sha256=uui_LhgGTrW0uo4p-oKr4JUzhjvkLbFCqRVLNMrptzY,1383
+django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.mo,sha256=ULoIe36zGKPZZs113CenA6J9HviYcBOKagXrPGxyBUI,1182
+django/contrib/contenttypes/locale/ky/LC_MESSAGES/django.po,sha256=FnW5uO8OrTYqbvoRuZ6gnCD6CHnuLjN00s2Jo1HX1NE,1465
+django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/contenttypes/locale/lb/LC_MESSAGES/django.po,sha256=dwVKpCRYmXTD9h69v5ivkZe-yFtvdZNZ3VfuyIl4olY,989
+django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.mo,sha256=HucsRl-eqfxw6ESTuXvl7IGjPGYSI9dxM5lMly_P1sc,1215
+django/contrib/contenttypes/locale/lt/LC_MESSAGES/django.po,sha256=odzYqHprxKFIrR8TzdxA4WeeMK0W0Nvn2gAVuzAsEqI,1488
+django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.mo,sha256=GPlsi9PZmmZVly_XWtH22FHWzwToAziZ0-UjAxSggEY,1058
+django/contrib/contenttypes/locale/lv/LC_MESSAGES/django.po,sha256=iAybT_MfaeH6V7oiqv6UJjDsfLkk1GLoYyh-s-vxZAg,1385
+django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.mo,sha256=KTFZWm0F4S6lmi1FX76YKOyJqIZN5cTsiTBI_D4ADHs,1258
+django/contrib/contenttypes/locale/mk/LC_MESSAGES/django.po,sha256=mQZosS90S-Bil6-EoGjs9BDWYlvOF6mtUDZ8h9NxEdE,1534
+django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.mo,sha256=rtmLWfuxJED-1KuqkUT8F5CU1KGJP0Of718n2Gl_gI0,1378
+django/contrib/contenttypes/locale/ml/LC_MESSAGES/django.po,sha256=Z-kL9X9CD7rYfa4Uoykye2UgCNQlgyql0HTv1eUXAf4,1634
+django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.mo,sha256=J6kKYjUOsQxptNXDcCaY4d3dHJio4HRibRk3qfwO6Xc,1225
+django/contrib/contenttypes/locale/mn/LC_MESSAGES/django.po,sha256=x8aRJH2WQvMBBWlQt3T3vpV4yHeZXLmRTT1U0at4ZIk,1525
+django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.mo,sha256=G7yoBvkVNtyQxT2RCCPjBeI8C3lAzVcPxW0OkDeVyz0,1004
+django/contrib/contenttypes/locale/mr/LC_MESSAGES/django.po,sha256=BKgamLogZ-F3gBYeTZy1rGCkNe5AjOew8Nm1LTVkhEs,1348
+django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.mo,sha256=EIwbOZ0QahW9AFFWRmRdKGKBtYYY_eTcfU4eqDVSVxw,1035
+django/contrib/contenttypes/locale/ms/LC_MESSAGES/django.po,sha256=t7nKsOMxycn_CsXw2nIfU-owJRge3FAixgbTsDhffvo,1225
+django/contrib/contenttypes/locale/my/LC_MESSAGES/django.mo,sha256=YYa2PFe9iJygqL-LZclfpgR6rBmIvx61JRpBkKS6Hrs,1554
+django/contrib/contenttypes/locale/my/LC_MESSAGES/django.po,sha256=6F3nXd9mBc-msMchkC8OwAHME1x1O90xrsZp7xmynpU,1732
+django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.mo,sha256=EHU9Lm49U7WilR5u-Lq0Fg8ChR_OzOce4UyPlkZ6Zs4,1031
+django/contrib/contenttypes/locale/nb/LC_MESSAGES/django.po,sha256=lbktPYsJudrhe4vxnauzpzN9eNwyoVs0ZmZSdkwjkOk,1403
+django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.mo,sha256=-zZAn5cex4PkScoZVqS74PUMThJJuovZSk3WUKZ8hnw,1344
+django/contrib/contenttypes/locale/ne/LC_MESSAGES/django.po,sha256=1ZCUkulQ9Gxb50yMKFKWaTJli2SinBeNj0KpXkKpsNE,1519
+django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.mo,sha256=aXDHgg891TyTiMWNcbNaahfZQ2hqtl5yTkx5gNRocMU,1040
+django/contrib/contenttypes/locale/nl/LC_MESSAGES/django.po,sha256=zDJ_vyQxhP0mP06U-e4p6Uj6v1g863s8oaxc0JIAMjg,1396
+django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.mo,sha256=a_X8e2lMieWwUtENJueBr8wMvkw6at0QSaWXd5AM6yQ,1040
+django/contrib/contenttypes/locale/nn/LC_MESSAGES/django.po,sha256=xFSirHUAKv78fWUpik6xv-6WQSEoUgN5jjPbTOy58C4,1317
+django/contrib/contenttypes/locale/os/LC_MESSAGES/django.mo,sha256=QV533Wu-UpjV3XiCe83jlz7XGuwgRviV0ggoeMaIOIY,1116
+django/contrib/contenttypes/locale/os/LC_MESSAGES/django.po,sha256=UZahnxo8z6oWJfEz4JNHGng0EAifXYtJupB6lx0JB60,1334
+django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.mo,sha256=qacd7eywof8rvJpstNfEmbHgvDiQ9gmkcyG7gfato8s,697
+django/contrib/contenttypes/locale/pa/LC_MESSAGES/django.po,sha256=Kq2NTzdbgq8Q9jLLgV-ZJaSRj43D1dDHcRIgNnJXu-s,1145
+django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.mo,sha256=J5sC36QwKLvrMB4adsojhuw2kYuEckHz6eoTrZwYcnI,1208
+django/contrib/contenttypes/locale/pl/LC_MESSAGES/django.po,sha256=gxP59PjlIHKSiYZcbgIY4PUZSoKYx4YKCpm4W4Gj22g,1577
+django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.mo,sha256=k7cJHLP3avrBD50o5oxaZmLlT9Uv_XgxzDn4YhvNeDM,1154
+django/contrib/contenttypes/locale/pt/LC_MESSAGES/django.po,sha256=O087gXKjUtRwCrYHERr-m8smmuJg-eo4OAOL2vRDBj4,1446
+django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.mo,sha256=qjl-3fBqNcAuoviGejjILC7Z8XmrRd7gHwOgwu1x1zw,1117
+django/contrib/contenttypes/locale/pt_BR/LC_MESSAGES/django.po,sha256=Xp0iBhseS8v13zjDcNQv4BDaroMtDJVs4-BzNc0UOpU,1494
+django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.mo,sha256=sCthDD10v7GY2cui9Jj9HK8cofVEg2WERCm6aktOM-4,1142
+django/contrib/contenttypes/locale/ro/LC_MESSAGES/django.po,sha256=n-BPEfua0Gd6FN0rsP7qAlTGbQEZ14NnDMA8jI2844Y,1407
+django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.mo,sha256=OSf206SFmVLULHmwVhTaRhWTQtyDKsxe03gIzuvAUnY,1345
+django/contrib/contenttypes/locale/ru/LC_MESSAGES/django.po,sha256=xHyJYD66r8We3iN5Hqo69syWkjhz4zM7X9BWPIiI6mU,1718
+django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.mo,sha256=osKXPEE0x-oahNDjgr4aea3dzmLddTT_RLQ8TnbsIOg,1115
+django/contrib/contenttypes/locale/sk/LC_MESSAGES/django.po,sha256=nZBxZH3r93fbtth15iP-Q2tNLrZrYqc8V0B9c4XMRNI,1433
+django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.mo,sha256=sMML-ubI_9YdKptzeri1du8FOdKcEzJbe4Tt0J4ePFI,1147
+django/contrib/contenttypes/locale/sl/LC_MESSAGES/django.po,sha256=0zxiyzRWWDNVpNNLlcwl-OLh5sLukma1vm-kYrGHYrE,1392
+django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.mo,sha256=jYDQH3OpY4Vx9hp6ISFMI88uxBa2GDQK0BkLGm8Qulk,1066
+django/contrib/contenttypes/locale/sq/LC_MESSAGES/django.po,sha256=JIvguXVOFpQ3MRqRXHpxlg8_YhEzCsZBBMdpekYTxlk,1322
+django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.mo,sha256=GUXj97VN15HdY7XMy5jmMLEu13juD3To5NsztcoyPGs,1204
+django/contrib/contenttypes/locale/sr/LC_MESSAGES/django.po,sha256=T1w_EeB6yT-PXr7mrwzqu270linf_KY3_ZCgl4wfLAQ,1535
+django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=m2plistrI8O-ztAs5HmDYXG8N_wChaDfXFev0GYWVys,1102
+django/contrib/contenttypes/locale/sr_Latn/LC_MESSAGES/django.po,sha256=lJrhLPDbJAcXgBPco-_lfUXqs31imj_vGwE5p1EXZjk,1390
+django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.mo,sha256=J5ha8X6jnQ4yuafk-JCqPM5eIGNwKpDOpTwIVCrnGNE,1055
+django/contrib/contenttypes/locale/sv/LC_MESSAGES/django.po,sha256=HeKnQJaRNflAbKxTiC_2EFAg2Sx-e3nDXrReJyVoNTQ,1400
+django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.mo,sha256=XLPle0JYPPkmm5xpJRmWztMTF1_3a2ZubWE4ur2sav8,563
+django/contrib/contenttypes/locale/sw/LC_MESSAGES/django.po,sha256=jRc8Eh6VuWgqc4kM-rxjbVE3yV9uip6mOJLdD6yxGLM,1009
+django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.mo,sha256=L3eF4z9QSmIPqzEWrNk8-2uLteQUMsuxiD9VZyRuSfo,678
+django/contrib/contenttypes/locale/ta/LC_MESSAGES/django.po,sha256=iDb9lRU_-YPmO5tEQeXEZeGeFe-wVZy4k444sp_vTgw,1123
+django/contrib/contenttypes/locale/te/LC_MESSAGES/django.mo,sha256=S_UF_mZbYfScD6Z36aB-kwtTflTeX3Wt4k7z_pEcOV8,690
+django/contrib/contenttypes/locale/te/LC_MESSAGES/django.po,sha256=aAGMMoJPg_pF9_rCNZmda5A_TvDCvQfYEL64Xdoa4jo,1135
+django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.mo,sha256=dkLic6fD2EMzrB7m7MQazaGLoJ_pBw55O4nYZc5UYEs,864
+django/contrib/contenttypes/locale/tg/LC_MESSAGES/django.po,sha256=1nv1cVJewfr44gbQh1Szzy3DT4Y9Dy7rUgAZ81otJQs,1232
+django/contrib/contenttypes/locale/th/LC_MESSAGES/django.mo,sha256=qilt-uZMvt0uw-zFz7-eCmkGEx3XYz7NNo9Xbq3s7uI,1186
+django/contrib/contenttypes/locale/th/LC_MESSAGES/django.po,sha256=42F34fNEn_3yQKBBJnCLttNeyktuLVpilhMyepOd6dg,1444
+django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.mo,sha256=0fuA3E487-pceoGpX9vMCwSnCItN_pbLUIUzzcrAGOE,1068
+django/contrib/contenttypes/locale/tk/LC_MESSAGES/django.po,sha256=pS8wX9dzxys3q8Vvz3PyoVJYqplXhNuAqfq7Dsb07fw,1283
+django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.mo,sha256=gKg2FCxs2fHpDB1U6gh9xrP7mOpYG65pB4CNmdPYiDg,1057
+django/contrib/contenttypes/locale/tr/LC_MESSAGES/django.po,sha256=gmI3RDhq39IlDuvNohT_FTPY5QG8JD0gFxG5CTsvVZs,1345
+django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.mo,sha256=_LQ1N04FgosdDLUYXJOEqpCB2Mg92q95cBRgYPi1MyY,659
+django/contrib/contenttypes/locale/tt/LC_MESSAGES/django.po,sha256=L7wMMpxGnpQiKd_mjv2bJpE2iqCJ8XwiXK0IN4EHSbM,1110
+django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/contenttypes/locale/udm/LC_MESSAGES/django.po,sha256=YVyej0nAhhEf7knk4vCeRQhmSQeGZLhMPPXyIyWObnM,977
+django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.mo,sha256=hddqwGR9yrDZye5FZSatvlBBGerLsxS0x1HRodFmwkk,1182
+django/contrib/contenttypes/locale/ug/LC_MESSAGES/django.po,sha256=DoAswgu8-Ukl5e5TLhMcMQRuWEalnmokpKZsKSN9RYk,1397
+django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.mo,sha256=GgAuuLexfhYl1fRKPfZI5uMTkt2H42Ogil6MQHcejkU,1404
+django/contrib/contenttypes/locale/uk/LC_MESSAGES/django.po,sha256=1HzO_Wmxqk0Kd5gtACKZODiH8ZEpOf5Eh8Mkrg3IMf8,1779
+django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.mo,sha256=OJs_EmDBps-9a_KjFJnrS8IqtJfd25LaSWeyG8u8UfI,671
+django/contrib/contenttypes/locale/ur/LC_MESSAGES/django.po,sha256=f0FnsaAM_qrBuCXzLnkBrW5uFfVc6pUh7S-qp4918Ng,1122
+django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.mo,sha256=kGYgEI1gHkyU4y_73mBJN1hlKC2JujVXMg6iCdWncDg,1155
+django/contrib/contenttypes/locale/vi/LC_MESSAGES/django.po,sha256=RIDUgsElfRF8bvBdUKtshizuMnupdMGAM896s7qZKD4,1439
+django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=RviK0bqLZzPrZ46xUpc0f8IKkw3JLtsrt0gNA74Ypj0,1015
+django/contrib/contenttypes/locale/zh_Hans/LC_MESSAGES/django.po,sha256=vSKJDEQ_ANTj3-W8BFJd9u_QGdTMF12iS15rVgeujOs,1380
+django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=NMumOJ9dPX-7YjQH5Obm4Yj0-lnGXJmCMN5DGbsLQG4,1046
+django/contrib/contenttypes/locale/zh_Hant/LC_MESSAGES/django.po,sha256=7WIqYRpcs986MjUsegqIido5k6HG8d3FVvkrOQCRVCI,1338
+django/contrib/contenttypes/management/__init__.py,sha256=ZVHVJAYi_jCIXxWUZSkxq0IDECe6bvbFsWayrqbutfc,4937
+django/contrib/contenttypes/management/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/contenttypes/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/contenttypes/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/contenttypes/management/commands/__pycache__/remove_stale_contenttypes.cpython-311.pyc,,
+django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py,sha256=F6rm6MTMLuZVXCsn6L3ln3ouehsUTaVGaNeaZ4cRW7I,4643
+django/contrib/contenttypes/migrations/0001_initial.py,sha256=Ne2EiaFH4LQqFcIbXU8OiUDeb3P7Mm6dbeqRtNC5U8w,1434
+django/contrib/contenttypes/migrations/0002_remove_content_type_name.py,sha256=fTZJQHV1Dw7TwPaNDLFUjrpZzFk_UvaR9sw3oEMIN2Y,1199
+django/contrib/contenttypes/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/contenttypes/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/contenttypes/migrations/__pycache__/0002_remove_content_type_name.cpython-311.pyc,,
+django/contrib/contenttypes/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/contenttypes/models.py,sha256=VKXWweIQQ6eX88YX96nlcMo9ESaW7p_wUPJSalGInsc,6844
+django/contrib/contenttypes/prefetch.py,sha256=cORwKClKS-wzGrmRj2BlSBuuJz6iRBWOVl4tBYHRrtA,1358
+django/contrib/contenttypes/views.py,sha256=HBoIbNpgHTQN5pH8mul77UMEMZHbbkEH_Qdln-XFgd0,3549
+django/contrib/flatpages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/flatpages/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/admin.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/apps.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/forms.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/models.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/sitemaps.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/urls.cpython-311.pyc,,
+django/contrib/flatpages/__pycache__/views.cpython-311.pyc,,
+django/contrib/flatpages/admin.py,sha256=ynemOSDgvKoCfRFLXZrPwj27U0mPUXmxdrue7SOZeqQ,701
+django/contrib/flatpages/apps.py,sha256=_OlaDxWbMrUmFNCS4u-RnBsg67rCWs8Qzh_c58wvtXA,252
+django/contrib/flatpages/forms.py,sha256=r9yUG_-zAnI7Ubr836aiWgScYpKxHhJbNLhHRkZQOzY,2492
+django/contrib/flatpages/locale/af/LC_MESSAGES/django.mo,sha256=AG2eKl6o50fG3wWYS7D4-m3gWi9_yfPwEHp-HjB4Sr8,2282
+django/contrib/flatpages/locale/af/LC_MESSAGES/django.po,sha256=EVgUOspHqS4FuFggANzWpyQEutGV4kSx2zUWoOjBF9w,2459
+django/contrib/flatpages/locale/ar/LC_MESSAGES/django.mo,sha256=dBHaqsaKH9QOIZ0h2lIDph8l9Bv2UAcD-Hr9TAxj8Ac,2636
+django/contrib/flatpages/locale/ar/LC_MESSAGES/django.po,sha256=-0ZdfA-sDU8fOucgT2Ow1iM3QnRMuQeslMOSwYhAH9M,2958
+django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=jp6sS05alESJ4-SbEIf574UPVcbllAd_J-FW802lGyk,2637
+django/contrib/flatpages/locale/ar_DZ/LC_MESSAGES/django.po,sha256=yezpjWcROwloS08TEMo9oPXDKS1mfFE9NYI66FUuLaA,2799
+django/contrib/flatpages/locale/ast/LC_MESSAGES/django.mo,sha256=4SEsEE2hIZJwQUNs8jDgN6qVynnUYJUIE4w-usHKA6M,924
+django/contrib/flatpages/locale/ast/LC_MESSAGES/django.po,sha256=5UlyS59bVo1lccM6ZgdYSgHe9NLt_WeOdXX-swLKubU,1746
+django/contrib/flatpages/locale/az/LC_MESSAGES/django.mo,sha256=s3YhszIU5rdigUVVPB3Jpfn3jbH5L1NXWXky_Q3slvY,2378
+django/contrib/flatpages/locale/az/LC_MESSAGES/django.po,sha256=tDALtASG8n7uaJT7yFsM-rz7FN5rONXlCKqCQIrIcPY,2707
+django/contrib/flatpages/locale/be/LC_MESSAGES/django.mo,sha256=mOQlbfwwIZiwWCrFStwag2irCwsGYsXIn6wZDsPRvyA,2978
+django/contrib/flatpages/locale/be/LC_MESSAGES/django.po,sha256=wlIfhun5Jd6gxbkmmYPSIy_tzPVmSu4CjMwPzBNnvpo,3161
+django/contrib/flatpages/locale/bg/LC_MESSAGES/django.mo,sha256=9Un5mKtsAuNeYWFQKFkIyCpQquE6qVD3zIrFoq8sCDI,2802
+django/contrib/flatpages/locale/bg/LC_MESSAGES/django.po,sha256=Vr6d-9XjgK4_eXdWY3FEpdTlCEGgbCv93bLGyMTE9hs,3104
+django/contrib/flatpages/locale/bn/LC_MESSAGES/django.mo,sha256=2oK2Rm0UtAI7QFRwpUR5aE3-fOltE6kTilsTbah737Y,2988
+django/contrib/flatpages/locale/bn/LC_MESSAGES/django.po,sha256=QrbX69iqXOD6oByLcgPkD1QzAkfthpfTjezIFQ-6kVg,3172
+django/contrib/flatpages/locale/br/LC_MESSAGES/django.mo,sha256=SKbykdilX_NcpkVi_lHF8LouB2G49ZAzdF09xw49ERc,2433
+django/contrib/flatpages/locale/br/LC_MESSAGES/django.po,sha256=O_mwrHIiEwV4oB1gZ7Yua4nVKRgyIf3j5UtedZWAtwk,2783
+django/contrib/flatpages/locale/bs/LC_MESSAGES/django.mo,sha256=bd7ID7OsEhp57JRw_TXoTwsVQNkFYiR_sxSkgi4WvZU,1782
+django/contrib/flatpages/locale/bs/LC_MESSAGES/django.po,sha256=IyFvI5mL_qesEjf6NO1nNQbRHhCAZQm0UhIpmGjrSwQ,2233
+django/contrib/flatpages/locale/ca/LC_MESSAGES/django.mo,sha256=GcMVbg4i5zKCd2Su7oN30WVJN7Q9K7FsFifgTB8jDPI,2237
+django/contrib/flatpages/locale/ca/LC_MESSAGES/django.po,sha256=-aJHSbWPVyNha_uF6R35Q6yn4-Hse3jTInr9jtaxKOI,2631
+django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.mo,sha256=ds26zJRsUHDNdhoUJ8nsLtBdKDhN29Kb51wNiB8Llgo,2716
+django/contrib/flatpages/locale/ckb/LC_MESSAGES/django.po,sha256=jqqMYjrplyX8jtyBLd1ObMEwoFmaETmNXrO3tg2S0BY,2918
+django/contrib/flatpages/locale/cs/LC_MESSAGES/django.mo,sha256=8nwep22P86bMCbW7sj4n0BMGl_XaJIJV0fjnVp-_dqY,2340
+django/contrib/flatpages/locale/cs/LC_MESSAGES/django.po,sha256=1agUeRthwpam1UvZY4vRnZtLLbiop75IEXb6ul_e3mg,2611
+django/contrib/flatpages/locale/cy/LC_MESSAGES/django.mo,sha256=zr_2vsDZsrby3U8AmvlJMU3q1U_4IrrTmz6oS29OWtQ,2163
+django/contrib/flatpages/locale/cy/LC_MESSAGES/django.po,sha256=E_NC_wtuhWKYKB3YvYGB9ccJgKI3AfIZlB2HpXSyOsk,2370
+django/contrib/flatpages/locale/da/LC_MESSAGES/django.mo,sha256=nALoI50EvFPa4f3HTuaHUHATF1zHMjo4v5zcHj4n6sA,2277
+django/contrib/flatpages/locale/da/LC_MESSAGES/django.po,sha256=j4dpnreB7LWdZO7Drj7E9zBwFx_Leuj7ZLyEPi-ccAQ,2583
+django/contrib/flatpages/locale/de/LC_MESSAGES/django.mo,sha256=I4CHFzjYM_Wd-vuIYOMf8E58ntOgkLmgOAg35Chdz3s,2373
+django/contrib/flatpages/locale/de/LC_MESSAGES/django.po,sha256=P6tPVPumP9JwBIv-XXi1QQYJyj1PY3OWoM4yOAmgTRE,2592
+django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.mo,sha256=oTILSe5teHa9XTYWoamstpyPu02yb_xo8S0AtkP7WP8,2391
+django/contrib/flatpages/locale/dsb/LC_MESSAGES/django.po,sha256=1xD2aH5alerranvee6QLZqgxDVXxHThXCHR4kOJAV48,2576
+django/contrib/flatpages/locale/el/LC_MESSAGES/django.mo,sha256=LQ8qIGwzoKwewtLz_1NhnhEeR4dPx2rrQ_hAN4BF6Og,2864
+django/contrib/flatpages/locale/el/LC_MESSAGES/django.po,sha256=gbLO52fcZK7LoG5Rget2Aq5PTFoz467ackXpSsR81kY,3221
+django/contrib/flatpages/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/flatpages/locale/en/LC_MESSAGES/django.po,sha256=0bNWKiu-1MkHFJ_UWrCLhp9ENr-pHzBz1lkhBkkrhJM,2169
+django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.mo,sha256=dTt7KtwiEyMEKYVzkPSqs6VS0CiUfK7ISz2c6rV2erA,2210
+django/contrib/flatpages/locale/en_AU/LC_MESSAGES/django.po,sha256=_V4RTf0JtmyU7DRQv7jIwtPJs05KA2THPid5nKQ0ego,2418
+django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.mo,sha256=7zyXYOsqFkUGxclW-VPPxrQTZKDuiYQ7MQJy4m8FClo,1989
+django/contrib/flatpages/locale/en_GB/LC_MESSAGES/django.po,sha256=oHrBd6lVnO7-SdnO-Taa7iIyiqp_q2mQZjkuuU3Qa_s,2232
+django/contrib/flatpages/locale/eo/LC_MESSAGES/django.mo,sha256=W8TkkQkV58oOvFdKCPAyoQNyCxSmfErwik1U8a_W5nE,2333
+django/contrib/flatpages/locale/eo/LC_MESSAGES/django.po,sha256=e54WOtIcIQLjB4bJGol51z6d6dwLBiiJN2k-nrTQlaI,2750
+django/contrib/flatpages/locale/es/LC_MESSAGES/django.mo,sha256=9Q7Qf1eSPvAfPTZSGWq7QMWrROY-CnpUkeRpiH8rpJw,2258
+django/contrib/flatpages/locale/es/LC_MESSAGES/django.po,sha256=3vGZ3uVCyWnIkDSUt6DMMOqyphv3EQteTPLx7e9J_sU,2663
+django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.mo,sha256=bUnFDa5vpxl27kn2ojTbNaCmwRkBCH-z9zKXAvXe3Z0,2275
+django/contrib/flatpages/locale/es_AR/LC_MESSAGES/django.po,sha256=vEg3wjL_7Ee-PK4FZTaGRCXFscthkoH9szJ7H01K8w8,2487
+django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.mo,sha256=jt8wzeYky5AEnoNuAv8W4nGgd45XsMbpEdRuLnptr3U,2140
+django/contrib/flatpages/locale/es_CO/LC_MESSAGES/django.po,sha256=xrbAayPoxT7yksXOGPb-0Nc-4g14UmWANaKTD4ItAFA,2366
+django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.mo,sha256=Y5IOKRzooJHIhJzD9q4PKOe39Z4Rrdz8dBKuvmGkqWU,2062
+django/contrib/flatpages/locale/es_MX/LC_MESSAGES/django.po,sha256=Y-EXhw-jISttA9FGMz7gY_kB-hQ3wEyKEaOc2gu2hKQ,2246
+django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.mo,sha256=EI6WskepXUmbwCPBNFKqLGNcWFVZIbvXayOHxOCLZKo,2187
+django/contrib/flatpages/locale/es_VE/LC_MESSAGES/django.po,sha256=ipG6a0A2d0Pyum8GcknA-aNExVLjSyuUqbgHM9VdRQo,2393
+django/contrib/flatpages/locale/et/LC_MESSAGES/django.mo,sha256=zriqETEWD-DDPiNzXgAzgEhjvPAaTo7KBosyvBebyc0,2233
+django/contrib/flatpages/locale/et/LC_MESSAGES/django.po,sha256=tMuITUlzy6LKJh3X3CxssFpTQogg8OaGHlKExzjwyOI,2525
+django/contrib/flatpages/locale/eu/LC_MESSAGES/django.mo,sha256=FoKazUkuPpDgsEEI6Gm-xnZYVHtxILiy6Yzvnu8y-L0,2244
+django/contrib/flatpages/locale/eu/LC_MESSAGES/django.po,sha256=POPFB5Jd8sE9Z_ivYSdnet14u-aaXneTUNDMuOrJy00,2478
+django/contrib/flatpages/locale/fa/LC_MESSAGES/django.mo,sha256=2rA7-OR8lQbl_ZhlAC4cmHEmQ9mwxnA8q5M-gx3NmVQ,2612
+django/contrib/flatpages/locale/fa/LC_MESSAGES/django.po,sha256=_-yKW2xIN9XSXEwZTdkhEpRHJoacN8f56D3AkCvlFs0,3006
+django/contrib/flatpages/locale/fi/LC_MESSAGES/django.mo,sha256=VsQdof8hE_AKQGS-Qp82o8PTN_7NxxEdxelGenIAE-8,2256
+django/contrib/flatpages/locale/fi/LC_MESSAGES/django.po,sha256=RL7eruNkgDjr1b3cF2yCqeM8eDKHwAqF6h8hYuxl6R4,2552
+django/contrib/flatpages/locale/fr/LC_MESSAGES/django.mo,sha256=ZqD4O3_Ny8p5i6_RVHlANCnPiowMd19Qi_LOPfTHav4,2430
+django/contrib/flatpages/locale/fr/LC_MESSAGES/django.po,sha256=liAoOgT2CfpANL_rYzyzsET1MhsM19o7wA2GBnoDvMA,2745
+django/contrib/flatpages/locale/fy/LC_MESSAGES/django.mo,sha256=DRsFoZKo36F34XaiQg_0KUOr3NS_MG3UHptzOI4uEAU,476
+django/contrib/flatpages/locale/fy/LC_MESSAGES/django.po,sha256=9JIrRVsPL1m0NPN6uHiaAYxJXHp5IghZmQhVSkGo5g8,1523
+django/contrib/flatpages/locale/ga/LC_MESSAGES/django.mo,sha256=f4552jyACX8w17CU4QAwoPmj05A8nNaTiy-2cbmegSk,2351
+django/contrib/flatpages/locale/ga/LC_MESSAGES/django.po,sha256=oPLJhdAZd2zwKo4o12vDJU-7MQ_CiC9wqszFHmV7LXo,2613
+django/contrib/flatpages/locale/gd/LC_MESSAGES/django.mo,sha256=KbaTL8kF9AxDBLDQWlxcP5hZ4zWnbkvY0l2xRKZ9Dg0,2469
+django/contrib/flatpages/locale/gd/LC_MESSAGES/django.po,sha256=DVY_1R0AhIaI1qXIeRej3XSHMtlimeKNUwzFjc4OmwA,2664
+django/contrib/flatpages/locale/gl/LC_MESSAGES/django.mo,sha256=e8hfOxRyLtCsvdd1FVGuI_dnsptVhfW_O9KyuPT0ENk,2256
+django/contrib/flatpages/locale/gl/LC_MESSAGES/django.po,sha256=YqyR8qnKho8jK03igqPv9KlJw5yVIIDCAGc5z2QxckE,2583
+django/contrib/flatpages/locale/he/LC_MESSAGES/django.mo,sha256=PbypHBhT3W_rp37u8wvaCJdtYB4IP-UeE02VUvSHPf0,2517
+django/contrib/flatpages/locale/he/LC_MESSAGES/django.po,sha256=f7phCRqJPFL7CsuSE1xg9xlaBoOpdd-0zoTYotff29M,2827
+django/contrib/flatpages/locale/hi/LC_MESSAGES/django.mo,sha256=w29ukoF48C7iJ6nE045YoWi7Zcrgu_oXoxT-r6gcQy8,2770
+django/contrib/flatpages/locale/hi/LC_MESSAGES/django.po,sha256=nXq5y1FqMGVhpXpQVdV3uU5JcUtBc2BIrf-n__C2q30,3055
+django/contrib/flatpages/locale/hr/LC_MESSAGES/django.mo,sha256=Mt4gpBuUXvcBl8K714ls4PimHQqee82jFxY1BEAYQOE,2188
+django/contrib/flatpages/locale/hr/LC_MESSAGES/django.po,sha256=ZbUMJY6a-os-xDmcDCJNrN4-YqRe9b_zJ4V5gt2wlGI,2421
+django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.mo,sha256=Pk44puT-3LxzNdGYxMALWpFdw6j6W0G-dWwAfv8sopI,2361
+django/contrib/flatpages/locale/hsb/LC_MESSAGES/django.po,sha256=mhnBXgZSK19E4JU8p2qzqyZqozSzltK-3iY5glr9WG8,2538
+django/contrib/flatpages/locale/hu/LC_MESSAGES/django.mo,sha256=rZxICk460iWBubNq53g9j2JfKIw2W7OqyPG5ylGE92s,2363
+django/contrib/flatpages/locale/hu/LC_MESSAGES/django.po,sha256=DDP7OLBkNbWXr-wiulmQgG461qAubJ8VrfCCXbyPk2g,2700
+django/contrib/flatpages/locale/hy/LC_MESSAGES/django.mo,sha256=qocNtyLcQpjmGqQ130VGjJo-ruaOCtfmZehS9If_hWk,2536
+django/contrib/flatpages/locale/hy/LC_MESSAGES/django.po,sha256=WD8ohMnsaUGQItyqQmS46d76tKgzhQ17X_tGevqULO0,2619
+django/contrib/flatpages/locale/ia/LC_MESSAGES/django.mo,sha256=bochtCPlc268n0WLF0bJtUUT-XveZLPOZPQUetnOWfU,500
+django/contrib/flatpages/locale/ia/LC_MESSAGES/django.po,sha256=gOJ850e8sFcjR2G79zGn3_0-9-KSy591i7ketBRFjyw,1543
+django/contrib/flatpages/locale/id/LC_MESSAGES/django.mo,sha256=2kRHbcmfo09pIEuBb8q5AOkgC0sISJrAG37Rb5F0vts,2222
+django/contrib/flatpages/locale/id/LC_MESSAGES/django.po,sha256=1avfX88CkKMh2AjzN7dxRwj9pgohIBgKE0aXB_shZfc,2496
+django/contrib/flatpages/locale/io/LC_MESSAGES/django.mo,sha256=N8R9dXw_cnBSbZtwRbX6Tzw5XMr_ZdRkn0UmsQFDTi4,464
+django/contrib/flatpages/locale/io/LC_MESSAGES/django.po,sha256=_pJveonUOmMu3T6WS-tV1OFh-8egW0o7vU3i5YqgChA,1511
+django/contrib/flatpages/locale/is/LC_MESSAGES/django.mo,sha256=lFtP1N5CN-x2aMtBNpB6j5HsZYZIZYRm6Y-22gNe1Ek,2229
+django/contrib/flatpages/locale/is/LC_MESSAGES/django.po,sha256=9e132zDa-n6IZxB8jO5H8I0Wr7ubYxrFEMBYj2W49vI,2490
+django/contrib/flatpages/locale/it/LC_MESSAGES/django.mo,sha256=oOEG327VGpi0K5P2UOQgQa39ln15t0lAz2Z36MIQQAc,2209
+django/contrib/flatpages/locale/it/LC_MESSAGES/django.po,sha256=ar8i-bTtAKhiXLULCsKMddpmYBjKyg2paYxBI6ImY1s,2526
+django/contrib/flatpages/locale/ja/LC_MESSAGES/django.mo,sha256=Qax3t7FFRonMrszVEeiyQNMtYyWQB3dmOeeIklEmhAg,2469
+django/contrib/flatpages/locale/ja/LC_MESSAGES/django.po,sha256=N6PBvnXLEWELKTx8nHm5KwydDuFFKq5pn6AIHsBSM5M,2848
+django/contrib/flatpages/locale/ka/LC_MESSAGES/django.mo,sha256=R4OSbZ-lGxMdeJYsaXVXpo6-KSZWeKPuErKmEsUvEQE,3022
+django/contrib/flatpages/locale/ka/LC_MESSAGES/django.po,sha256=TWKtkRamM6YD-4WMoqfZ7KY-ZPs5ny7G82Wst6vQRko,3306
+django/contrib/flatpages/locale/kk/LC_MESSAGES/django.mo,sha256=lMPryzUQr21Uy-NAGQhuIZjHz-4LfBHE_zxEc2_UPaw,2438
+django/contrib/flatpages/locale/kk/LC_MESSAGES/django.po,sha256=3y9PbPw-Q8wM7tCq6u3KeYUT6pfTqcQwlNlSxpAXMxQ,2763
+django/contrib/flatpages/locale/km/LC_MESSAGES/django.mo,sha256=FYRfhNSqBtavYb10sHZNfB-xwLwdZEfVEzX116nBs-k,1942
+django/contrib/flatpages/locale/km/LC_MESSAGES/django.po,sha256=d2AfbR78U0rJqbFmJQvwiBl_QvYIeSwsPKEnfYM4JZA,2471
+django/contrib/flatpages/locale/kn/LC_MESSAGES/django.mo,sha256=n5HCZEPYN_YIVCXrgA1qhxvfhZtDbhfiannJy5EkHkI,1902
+django/contrib/flatpages/locale/kn/LC_MESSAGES/django.po,sha256=-CHwu13UuE2-Qg6poG949I_dw3YiPI9ZhMh5h2vP4xw,2443
+django/contrib/flatpages/locale/ko/LC_MESSAGES/django.mo,sha256=M-IInVdIH24ORarb-KgY60tEorJZgrThDfJQOxW-S0c,2304
+django/contrib/flatpages/locale/ko/LC_MESSAGES/django.po,sha256=DjAtWVAN_fwOvZb-7CUSLtO8WN0Sr08z3jQLNqZ98wY,2746
+django/contrib/flatpages/locale/ky/LC_MESSAGES/django.mo,sha256=WmdWR6dRgmJ-nqSzFDUETypf373fj62igDVHC4ww7hQ,2667
+django/contrib/flatpages/locale/ky/LC_MESSAGES/django.po,sha256=0XDF6CjQTGkuaHADytG95lpFRVndlf_136q0lrQiU1U,2907
+django/contrib/flatpages/locale/lb/LC_MESSAGES/django.mo,sha256=Wkvlh5L_7CopayfNM5Z_xahmyVje1nYOBfQJyqucI_0,502
+django/contrib/flatpages/locale/lb/LC_MESSAGES/django.po,sha256=gGeTuniu3ZZ835t9HR-UtwCcd2s_Yr7ihIUm3jgQ7Y0,1545
+django/contrib/flatpages/locale/lt/LC_MESSAGES/django.mo,sha256=es6xV6X1twtqhIMkV-MByA7KZ5SoVsrx5Qh8BuzJS0Q,2506
+django/contrib/flatpages/locale/lt/LC_MESSAGES/django.po,sha256=T__44veTC_u4hpPvkLekDOWfntXYAMzCd5bffRtGxWA,2779
+django/contrib/flatpages/locale/lv/LC_MESSAGES/django.mo,sha256=IDXQMHn1EnvdrgBXCFmRBttLMniZmxtzyFz1OpooLQw,2321
+django/contrib/flatpages/locale/lv/LC_MESSAGES/django.po,sha256=ans7ZOT7b8UAMsoVis0EuJAJvmKjpjGuZdL2E8GUr20,2602
+django/contrib/flatpages/locale/mk/LC_MESSAGES/django.mo,sha256=55H8w6fB-B-RYlKKkGw3fg2m-djxUoEp_XpupK-ZL70,2699
+django/contrib/flatpages/locale/mk/LC_MESSAGES/django.po,sha256=OhHJ5OVWb0jvNaOB3wip9tSIZ1yaPPLkfQR--uUEyUI,2989
+django/contrib/flatpages/locale/ml/LC_MESSAGES/django.mo,sha256=VMMeOujp5fiLzrrbDeH24O2qKBPUkvI_YTSPH-LQjZc,3549
+django/contrib/flatpages/locale/ml/LC_MESSAGES/django.po,sha256=KR2CGnZ1sVuRzSGaPj5IlspoAkVuVEdf48XsAzt1se0,3851
+django/contrib/flatpages/locale/mn/LC_MESSAGES/django.mo,sha256=tqwROY6D-bJ4gbDQIowKXfuLIIdCWksGwecL2sj_wco,2776
+django/contrib/flatpages/locale/mn/LC_MESSAGES/django.po,sha256=jqiBpFLXlptDyU4F8ZWbP61S4APSPh0-nuTpNOejA6c,3003
+django/contrib/flatpages/locale/mr/LC_MESSAGES/django.mo,sha256=fuDy9vFLn5Mb3wVNUg8IvLyTwmyPr3M-GThzgkphJjg,2040
+django/contrib/flatpages/locale/mr/LC_MESSAGES/django.po,sha256=L_1vnLh4AjoaXdb4p_XfDnbKAAWkdQFSpE_8cKGZSm8,2593
+django/contrib/flatpages/locale/ms/LC_MESSAGES/django.mo,sha256=5t_67bMQhux6v6SSWqHfzzCgc6hm3olxgHAsKOMGGZU,2184
+django/contrib/flatpages/locale/ms/LC_MESSAGES/django.po,sha256=-ZzZ8lfAglGkO_BRYz1lRlywxaF1zZ28-Xv74O2nT04,2336
+django/contrib/flatpages/locale/my/LC_MESSAGES/django.mo,sha256=OcbiA7tJPkyt_WNrqyvoFjHt7WL7tMGHV06AZSxzkho,507
+django/contrib/flatpages/locale/my/LC_MESSAGES/django.po,sha256=EPWE566Vn7tax0PYUKq93vtydvmt-A4ooIau9Cwcdfc,1550
+django/contrib/flatpages/locale/nb/LC_MESSAGES/django.mo,sha256=L_XICESZ0nywkk1dn6RqzdUbFTcR92ju-zHCT1g3iEg,2208
+django/contrib/flatpages/locale/nb/LC_MESSAGES/django.po,sha256=ZtcBVD0UqIcsU8iLu5a2wnHLqu5WRLLboVFye2IuQew,2576
+django/contrib/flatpages/locale/ne/LC_MESSAGES/django.mo,sha256=gDZKhcku1NVlSs5ZPPupc7RI8HOF7ex0R4Rs8tMmrYE,1500
+django/contrib/flatpages/locale/ne/LC_MESSAGES/django.po,sha256=GWlzsDaMsJkOvw2TidJOEf1Fvxx9WxGdGAtfZIHkHwk,2178
+django/contrib/flatpages/locale/nl/LC_MESSAGES/django.mo,sha256=_yV_-SYYjpbo-rOHp8NlRzVHFPOSrfS-ndHOEJ9JP3Y,2231
+django/contrib/flatpages/locale/nl/LC_MESSAGES/django.po,sha256=xUuxx2b4ZTCA-1RIdoMqykLgjLLkmpO4ur1Vh93IITU,2669
+django/contrib/flatpages/locale/nn/LC_MESSAGES/django.mo,sha256=sHkuZneEWo1TItSlarlnOUR7ERjc76bJfHUcuFgd9mQ,2256
+django/contrib/flatpages/locale/nn/LC_MESSAGES/django.po,sha256=MpI9qkWqj4rud__xetuqCP-eFHUgMYJpfBhDnWRKPK4,2487
+django/contrib/flatpages/locale/os/LC_MESSAGES/django.mo,sha256=cXGTA5M229UFsgc7hEiI9vI9SEBrNQ8d3A0XrtazO6w,2329
+django/contrib/flatpages/locale/os/LC_MESSAGES/django.po,sha256=m-qoTiKePeFviKGH1rJRjZRH-doJ2Fe4DcZ6W52rG8s,2546
+django/contrib/flatpages/locale/pa/LC_MESSAGES/django.mo,sha256=69_ZsZ4nWlQ0krS6Mx3oL6c4sP5W9mx-yAmOhZOnjPU,903
+django/contrib/flatpages/locale/pa/LC_MESSAGES/django.po,sha256=N6gkoRXP5MefEnjywzRiE3aeU6kHQ0TUG6IGdLV7uww,1780
+django/contrib/flatpages/locale/pl/LC_MESSAGES/django.mo,sha256=5M5-d-TOx2WHlD6BCw9BYIU6bYrSR0Wlem89ih5k3Pc,2448
+django/contrib/flatpages/locale/pl/LC_MESSAGES/django.po,sha256=oKeeo-vNfPaCYVUbufrJZGk0vsgzAE0kLQOTF5qHAK4,2793
+django/contrib/flatpages/locale/pt/LC_MESSAGES/django.mo,sha256=9uXP_AY2U7tcqkM7r0CswVaP_xTjVd4ofmGDfy63bu8,2342
+django/contrib/flatpages/locale/pt/LC_MESSAGES/django.po,sha256=B8xIxpJ2Yv2HPaoeC71LJ7oe2Dd2K3FS07DQ4xPtoJc,2589
+django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.mo,sha256=YGyagSFIc-ssFN8bnqVRce1_PsybvLmI8RVCygjow8E,2291
+django/contrib/flatpages/locale/pt_BR/LC_MESSAGES/django.po,sha256=pFA8RPNefZpuhbxBHLt9KrI2RiHxct5V-DnZA-XqBv0,2942
+django/contrib/flatpages/locale/ro/LC_MESSAGES/django.mo,sha256=oS3MXuRh2USyLOMrMH0WfMSFpgBcZWfrbCrovYgbONo,2337
+django/contrib/flatpages/locale/ro/LC_MESSAGES/django.po,sha256=UNKGNSZKS92pJDjxKDLqVUW87DKCWP4_Q51xS16IZl0,2632
+django/contrib/flatpages/locale/ru/LC_MESSAGES/django.mo,sha256=AACtHEQuytEohUZVgk-o33O7rJTFAluq22VJOw5JqII,2934
+django/contrib/flatpages/locale/ru/LC_MESSAGES/django.po,sha256=H6JOPAXNxji1oni9kfga_hNZevodStpEl0O6cDnZ148,3312
+django/contrib/flatpages/locale/sk/LC_MESSAGES/django.mo,sha256=P1192D_B2kDQ6nF_tGEW7WCoTodB3_9rMTaqEQSMO4E,2353
+django/contrib/flatpages/locale/sk/LC_MESSAGES/django.po,sha256=--_DaPB_aSZHn_uxzmCpITO7VPCpP4Nq2rdQGgN14r8,2638
+django/contrib/flatpages/locale/sl/LC_MESSAGES/django.mo,sha256=kOrhhBdM9nbQbCLN49bBn23hCrzpAPrfKvPs4QMHgvo,2301
+django/contrib/flatpages/locale/sl/LC_MESSAGES/django.po,sha256=oyTrOVH0v76Ttc93qfeyu3FHcWLh3tTiz2TefGkmoq4,2621
+django/contrib/flatpages/locale/sq/LC_MESSAGES/django.mo,sha256=wh0stJPSy1w6eSio-Jg_gh_jharjRyanNurOP0avTsM,2350
+django/contrib/flatpages/locale/sq/LC_MESSAGES/django.po,sha256=9oVuVF8OLvf_XBs_duhu-XqF-5Naaai7gGpsPOrqvbQ,2630
+django/contrib/flatpages/locale/sr/LC_MESSAGES/django.mo,sha256=p--v7bpD8Pp6zeP3cdh8fnfC8g2nuhbzGJTdN9eoE58,2770
+django/contrib/flatpages/locale/sr/LC_MESSAGES/django.po,sha256=jxcyMN2Qh_osmo4Jf_6QUC2vW3KVKt1BupDWMMZyAXA,3071
+django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=3N4mGacnZj0tI5tFniLqC2LQCPSopDEM1SGaw5N1bsw,2328
+django/contrib/flatpages/locale/sr_Latn/LC_MESSAGES/django.po,sha256=od7r3dPbZ7tRAJUW80Oe-nm_tHcmIiG6b2OZMsFg53s,2589
+django/contrib/flatpages/locale/sv/LC_MESSAGES/django.mo,sha256=1pFmNWiExWo5owNijZHZb8-Tbd0nYPqqvTmIitcFPbY,2252
+django/contrib/flatpages/locale/sv/LC_MESSAGES/django.po,sha256=l3anvdgLQJzYehCalwr1AAh8e-hRKrL_bSNwmkfgbbc,2613
+django/contrib/flatpages/locale/sw/LC_MESSAGES/django.mo,sha256=Lhf99AGmazKJHzWk2tkGrMInoYOq0mtdCd8SGblnVCQ,1537
+django/contrib/flatpages/locale/sw/LC_MESSAGES/django.po,sha256=cos3eahuznpTfTdl1Vj_07fCOSYE8C9CRYHCBLYZrVw,1991
+django/contrib/flatpages/locale/ta/LC_MESSAGES/django.mo,sha256=nNuoOX-FPAmTvM79o7colM4C7TtBroTFxYtETPPatcQ,1945
+django/contrib/flatpages/locale/ta/LC_MESSAGES/django.po,sha256=XE4SndPZPLf1yXGl5xQSb0uor4OE8CKJ0EIXBRDA3qU,2474
+django/contrib/flatpages/locale/te/LC_MESSAGES/django.mo,sha256=bMxhDMTQc_WseqoeqJMCSNy71o4U5tJZYgD2G0p-jD0,1238
+django/contrib/flatpages/locale/te/LC_MESSAGES/django.po,sha256=tmUWOrAZ98B9T6Cai8AgLCfb_rLeoPVGjDTgdsMOY1Y,2000
+django/contrib/flatpages/locale/tg/LC_MESSAGES/django.mo,sha256=gpzjf_LxwWX6yUrcUfNepK1LGez6yvnuYhmfULDPZ6E,2064
+django/contrib/flatpages/locale/tg/LC_MESSAGES/django.po,sha256=lZFLes8BWdJ-VbczHFDWCSKhKg0qmmk10hTjKcBNr5o,2572
+django/contrib/flatpages/locale/th/LC_MESSAGES/django.mo,sha256=mct17_099pUn0aGuHu8AlZG6UqdKDpYLojqGYDLRXRg,2698
+django/contrib/flatpages/locale/th/LC_MESSAGES/django.po,sha256=PEcRx5AtXrDZvlNGWFH-0arroD8nZbutdJBe8_I02ag,2941
+django/contrib/flatpages/locale/tk/LC_MESSAGES/django.mo,sha256=_AfI4FH0jkeeCDgujfkx4xHMGSwGi5fs9iqr3HLUVVs,835
+django/contrib/flatpages/locale/tk/LC_MESSAGES/django.po,sha256=28Af2gU6Wmo2DvjxLZrpbXq0HBFrcP7yzfh5IlL4DJg,1881
+django/contrib/flatpages/locale/tr/LC_MESSAGES/django.mo,sha256=pPNGylfG8S0iBI4ONZbky3V2Q5AG-M1njp27tFrhhZc,2290
+django/contrib/flatpages/locale/tr/LC_MESSAGES/django.po,sha256=0ULZu3Plp8H9zdirHy3MSduJ_QRdpoaaivf3bL9MCwA,2588
+django/contrib/flatpages/locale/tt/LC_MESSAGES/django.mo,sha256=9RfCKyn0ZNYsqLvFNmY18xVMl7wnmDq5uXscrsFfupk,2007
+django/contrib/flatpages/locale/tt/LC_MESSAGES/django.po,sha256=SUwalSl8JWI9tuDswmnGT8SjuWR3DQGND9roNxJtH1o,2402
+django/contrib/flatpages/locale/udm/LC_MESSAGES/django.mo,sha256=7KhzWgskBlHmi-v61Ax9fjc3NBwHB17WppdNMuz-rEc,490
+django/contrib/flatpages/locale/udm/LC_MESSAGES/django.po,sha256=zidjP05Hx1OpXGqWEmF2cg9SFxASM4loOV85uW7zV5U,1533
+django/contrib/flatpages/locale/ug/LC_MESSAGES/django.mo,sha256=FL8P63c7BRO5hNABEzurk91v01ceRBhC1DJyjFJkiwg,2644
+django/contrib/flatpages/locale/ug/LC_MESSAGES/django.po,sha256=TxlRCGW-6fyxOO3YzAzKJa4utQp4NOOZ08YZxSit9E8,2774
+django/contrib/flatpages/locale/uk/LC_MESSAGES/django.mo,sha256=r2RZT8xQ1Gi9Yp0nnoNALqQ4zrEJ0JC7m26E5gSeq4g,3002
+django/contrib/flatpages/locale/uk/LC_MESSAGES/django.po,sha256=qcVizoTiKYc1c9KwSTwSALHgjjSGVY2oito_bBRLVTE,3405
+django/contrib/flatpages/locale/ur/LC_MESSAGES/django.mo,sha256=Li4gVdFoNOskGKAKiNuse6B2sz6ePGqGvZu7aGXMNy0,1976
+django/contrib/flatpages/locale/ur/LC_MESSAGES/django.po,sha256=hDasKiKrYov9YaNIHIpoooJo0Bzba___IuN2Hl6ofSc,2371
+django/contrib/flatpages/locale/vi/LC_MESSAGES/django.mo,sha256=FsFUi96oGTWGlZwM4qSMpuL1M2TAxsW51qO70TrybSM,1035
+django/contrib/flatpages/locale/vi/LC_MESSAGES/django.po,sha256=ITX3MWd7nlWPxTCoNPl22_OMLTt0rfvajGvTVwo0QC8,1900
+django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=UTCQr9t2wSj6dYLK1ftpF8-pZ25dAMYLRE2wEUQva-o,2124
+django/contrib/flatpages/locale/zh_Hans/LC_MESSAGES/django.po,sha256=loi9RvOnrgFs4qp8FW4RGis7wgDzBBXuwha5pFfLRxY,2533
+django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=INt9_smj4Zwo3hkn3kemuE85lfvwjUrIxbkIHa7Cd_E,2176
+django/contrib/flatpages/locale/zh_Hant/LC_MESSAGES/django.po,sha256=d9De9F9YWkc8YZt51Cg5Xtslwg04G0aRMqxTMAXqQI8,2477
+django/contrib/flatpages/middleware.py,sha256=aXeOeOkUmpdkGOyqZnkR-l1VrDQ161RWIWa3WPBhGac,784
+django/contrib/flatpages/migrations/0001_initial.py,sha256=4xhMsKaXOycsfo9O1QIuknS9wf7r0uVsshAJ7opeqsM,2408
+django/contrib/flatpages/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/flatpages/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/flatpages/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/flatpages/models.py,sha256=3ugRRsDwB5C3GHOWvtOzjJl-y0yqqjYZBSOMt24QYuw,1764
+django/contrib/flatpages/sitemaps.py,sha256=CEhZOsLwv3qIJ1hs4eHlE_0AAtYjicb_yRzsstY19eg,584
+django/contrib/flatpages/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/flatpages/templatetags/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/flatpages/templatetags/__pycache__/flatpages.cpython-311.pyc,,
+django/contrib/flatpages/templatetags/flatpages.py,sha256=QH-suzsoPIMSrgyHR9O8uOdmfIkBv_w3LM-hGfQvnU8,3552
+django/contrib/flatpages/urls.py,sha256=Rs37Ij192SOtSBjd4Lx9YtpINfEMg7XRY01dEOY8Rgg,179
+django/contrib/flatpages/views.py,sha256=H4LG7Janb6Dcn-zINLmp358hR60JigAKGzh4A4PMPaM,2724
+django/contrib/gis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/__pycache__/apps.cpython-311.pyc,,
+django/contrib/gis/__pycache__/feeds.cpython-311.pyc,,
+django/contrib/gis/__pycache__/geoip2.cpython-311.pyc,,
+django/contrib/gis/__pycache__/geometry.cpython-311.pyc,,
+django/contrib/gis/__pycache__/measure.cpython-311.pyc,,
+django/contrib/gis/__pycache__/ptr.cpython-311.pyc,,
+django/contrib/gis/__pycache__/shortcuts.cpython-311.pyc,,
+django/contrib/gis/__pycache__/views.cpython-311.pyc,,
+django/contrib/gis/admin/__init__.py,sha256=bCUsC6Hh7hztchqRKuaiTgk3nL0B4H053bVII-olB7k,486
+django/contrib/gis/admin/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/admin/__pycache__/options.cpython-311.pyc,,
+django/contrib/gis/admin/options.py,sha256=r60rycdAgcGSB21KQS_V0X78ulUjATYzws-JKLYd_lc,689
+django/contrib/gis/apps.py,sha256=dbAFKx9jj9_QdhdNfL5KCC47puH_ZTw098jsJFwDO9Y,417
+django/contrib/gis/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/__pycache__/utils.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/base/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/__pycache__/adapter.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/__pycache__/features.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/__pycache__/models.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/__pycache__/operations.cpython-311.pyc,,
+django/contrib/gis/db/backends/base/adapter.py,sha256=qbLG-sLB6EZ_sA6-E_uIClyp5E5hz9UQ-CsR3BWx8W8,592
+django/contrib/gis/db/backends/base/features.py,sha256=fF-AKB6__RjkxVRadNkOP7Av4wMaRGkXKybYV6ES2Gk,3718
+django/contrib/gis/db/backends/base/models.py,sha256=WqpmVLqK21m9J6k_N-SGPXq1VZMuNHafyB9xqxUwR4k,4009
+django/contrib/gis/db/backends/base/operations.py,sha256=_g_B-_AN1OVmarA3O8FdU7hnAgBCX0d4gvqalNRJAYg,6859
+django/contrib/gis/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/mysql/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/__pycache__/features.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/__pycache__/introspection.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/__pycache__/operations.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/__pycache__/schema.cpython-311.pyc,,
+django/contrib/gis/db/backends/mysql/base.py,sha256=z75wKhm-e9JfRLCvgDq-iv9OqOjBBAS238JTTrWfHRQ,498
+django/contrib/gis/db/backends/mysql/features.py,sha256=dVRo3CuV8Zp5822h9l48nApiXyn3lCuXQV3vsRZKeao,866
+django/contrib/gis/db/backends/mysql/introspection.py,sha256=ZihcSzwN0f8iqKOYKMHuQ_MY41ERSswjP46dvCF0v68,1602
+django/contrib/gis/db/backends/mysql/operations.py,sha256=VUW1dp9__5kx0hygPYWyUEzXKEwnp1S69X3F98E21X0,4952
+django/contrib/gis/db/backends/mysql/schema.py,sha256=Fn_h-6C8od95KTPWSogQprPGtTho5b-TbqqXaHVfkHg,3953
+django/contrib/gis/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/oracle/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/adapter.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/features.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/introspection.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/models.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/operations.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/__pycache__/schema.cpython-311.pyc,,
+django/contrib/gis/db/backends/oracle/adapter.py,sha256=AjD0eMuptu8BqkE2LshTizkf5iv9ArYVP9PoOTHfNao,2066
+django/contrib/gis/db/backends/oracle/base.py,sha256=_7qhvEdbnrJQEKL51sg8YYu8kRYmQNAlBgNb2OUbBkw,507
+django/contrib/gis/db/backends/oracle/features.py,sha256=3yCDutKz4iX01eOjLf0CLe_cemMaRjDmH8ZKNy_Sbyk,1021
+django/contrib/gis/db/backends/oracle/introspection.py,sha256=fW9FTIW_yAQQZwk0LzdoTtj6QQpFN6fgUQzv8dCmFEo,1939
+django/contrib/gis/db/backends/oracle/models.py,sha256=uKHuBReEGNJG6MbT-8rTyrCVZs3By2hCAx7bwyxSYUM,2081
+django/contrib/gis/db/backends/oracle/operations.py,sha256=DiJbFrN_I_YQYt6Z7F_-SkJVpztmWq1RJyT8wRn8eVI,8785
+django/contrib/gis/db/backends/oracle/schema.py,sha256=3nXuUXM0fHPRuqmi96WyCVx_lHRxf3USRN8At14VUwE,5430
+django/contrib/gis/db/backends/postgis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/postgis/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/adapter.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/const.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/features.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/introspection.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/models.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/operations.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/pgraster.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/__pycache__/schema.cpython-311.pyc,,
+django/contrib/gis/db/backends/postgis/adapter.py,sha256=mjQZEfrJtAEoFZFqoTiQ3uk_rBatstX0qFDFV8xZ90w,1980
+django/contrib/gis/db/backends/postgis/base.py,sha256=37t0_fDD4IeFsQrMrKoQRW01e8KJeXCSkbv5sOpreR8,5793
+django/contrib/gis/db/backends/postgis/const.py,sha256=ekJc9pvJwQ0tmxENkJsZFdP03uEUEneloR23SJcnTIc,2008
+django/contrib/gis/db/backends/postgis/features.py,sha256=qOEJLQTIC1YdlDoJkpLCiVQU4GAy0d9_Dneui7w41bM,455
+django/contrib/gis/db/backends/postgis/introspection.py,sha256=ihrNd_qHQ64DRjoaPj9-1a0y3H8Ko4gWbK2N5fDA3_g,3164
+django/contrib/gis/db/backends/postgis/models.py,sha256=LDZjyXCxyptWoOWPkeznO15auI4LCpWDTsVaZBnQcSU,2002
+django/contrib/gis/db/backends/postgis/operations.py,sha256=zcM7Oj1pxJ4PTh4qprOKLxTzU66nlkhjpuUATBPjDtY,16576
+django/contrib/gis/db/backends/postgis/pgraster.py,sha256=eCa2y-v3qGLeNbFI4ERFj2UmqgYAE19nuL3SgDFmm0o,4588
+django/contrib/gis/db/backends/postgis/schema.py,sha256=vgvUV6vwny02sNshGGWMksqB0XAIwTN7fDcjjvZBaQI,4468
+django/contrib/gis/db/backends/spatialite/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/db/backends/spatialite/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/adapter.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/client.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/features.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/introspection.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/models.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/operations.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/__pycache__/schema.cpython-311.pyc,,
+django/contrib/gis/db/backends/spatialite/adapter.py,sha256=qTiA5BBGUFND3D7xGK_85oo__HSexTH32XF4uin3ZV0,318
+django/contrib/gis/db/backends/spatialite/base.py,sha256=wU1fgp68CLyKELsMfO6zYM85ox4g_GloWESEK8EPrfM,3218
+django/contrib/gis/db/backends/spatialite/client.py,sha256=dNM7mqDyTzFlgQR1XhqZIftnR9VRH7AfcSvvy4vucEs,138
+django/contrib/gis/db/backends/spatialite/features.py,sha256=zkmJPExFtRqjRj608ZTlsSpxkYaPbV3A3SEfX3PcaFY,876
+django/contrib/gis/db/backends/spatialite/introspection.py,sha256=V_iwkz0zyF1U-AKq-UlxvyDImqQCsitcmvxk2cUw81A,3118
+django/contrib/gis/db/backends/spatialite/models.py,sha256=H-sDifQ3-0pvWIAl79zrqGfuTW7-vp1zFn1bIfqUR-o,1930
+django/contrib/gis/db/backends/spatialite/operations.py,sha256=jaLhSEYHqEewdx1AbaQpwy-S6lZOJiuY2ZwHb1euJ5M,8520
+django/contrib/gis/db/backends/spatialite/schema.py,sha256=URhFfLQM7FH39wmkViD8MZJ1qG3cixhNdWmjuM9ZB44,7340
+django/contrib/gis/db/backends/utils.py,sha256=rLwSv79tKJPxvDHACY8rhPDLFZC79mEIlIySTyl_qqc,785
+django/contrib/gis/db/models/__init__.py,sha256=TrCS27JdVa-Q7Hok-YaJxb4eLrPdyvRmasJGIu05fvA,865
+django/contrib/gis/db/models/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/models/__pycache__/aggregates.cpython-311.pyc,,
+django/contrib/gis/db/models/__pycache__/fields.cpython-311.pyc,,
+django/contrib/gis/db/models/__pycache__/functions.cpython-311.pyc,,
+django/contrib/gis/db/models/__pycache__/lookups.cpython-311.pyc,,
+django/contrib/gis/db/models/__pycache__/proxy.cpython-311.pyc,,
+django/contrib/gis/db/models/aggregates.py,sha256=ImbuX2AhL6PkEyrGDv_qKIgR9FSeIur7cIMIVKUYnlM,3147
+django/contrib/gis/db/models/fields.py,sha256=FuDumSWW2Gjcyihu4W1PNk0-qk5YcahxVV_erdtXiGM,14288
+django/contrib/gis/db/models/functions.py,sha256=1zoJCVjBlFK6jjeOHVWHMLW1p1EHyoLM4DmspUqO94w,19606
+django/contrib/gis/db/models/lookups.py,sha256=FOb501DBuopcbLy175O1BwD2ZoaVa2optogbXmvwv3o,11797
+django/contrib/gis/db/models/proxy.py,sha256=qckCc10o_W1qJ7yH5VpNo6huhPfVMAz3nJSEyLfk4oo,3174
+django/contrib/gis/db/models/sql/__init__.py,sha256=-rzcC3izMJi2bnvyQUCMzIOrigBnY6N_5EQIim4wCSY,134
+django/contrib/gis/db/models/sql/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/db/models/sql/__pycache__/conversion.cpython-311.pyc,,
+django/contrib/gis/db/models/sql/conversion.py,sha256=ZiMRzEf7_kOWJ4IITXFq6dL-wDwMhIEwvbE705afgaU,2433
+django/contrib/gis/feeds.py,sha256=0vNVVScIww13bOxvlQfXAOCItIOGWSXroKKl6QXGB58,5995
+django/contrib/gis/forms/__init__.py,sha256=Zyid_YlZzHUcMYkfGX1GewmPPDNc0ni7HyXKDTeIkjo,318
+django/contrib/gis/forms/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/forms/__pycache__/fields.cpython-311.pyc,,
+django/contrib/gis/forms/__pycache__/widgets.cpython-311.pyc,,
+django/contrib/gis/forms/fields.py,sha256=FrZaZWXFUdWK1QEu8wlda3u6EtqaVHjQRYrSKKu66PA,4608
+django/contrib/gis/forms/widgets.py,sha256=jV0TSxB6quB0rbkyAq4QJCdrZt4rA_LaZnO9CHRFdgI,3917
+django/contrib/gis/gdal/LICENSE,sha256=VwoEWoNyts1qAOMOuv6OPo38Cn_j1O8sxfFtQZ62Ous,1526
+django/contrib/gis/gdal/__init__.py,sha256=T3nxyji_4z2qUDPKzKlWKggVYpB3_5j6nLuEPDoz7R0,1811
+django/contrib/gis/gdal/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/datasource.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/driver.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/envelope.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/error.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/feature.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/field.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/geometries.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/geomtype.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/layer.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/libgdal.cpython-311.pyc,,
+django/contrib/gis/gdal/__pycache__/srs.cpython-311.pyc,,
+django/contrib/gis/gdal/base.py,sha256=yymyL0vZRMBfiFUzrehvaeaunIxMH5ucGjPRfKj-rAo,181
+django/contrib/gis/gdal/datasource.py,sha256=AnC_VfGXygqpeFYJ-bWKo0oIdDNCGV85XZ-TBd7Dapk,4644
+django/contrib/gis/gdal/driver.py,sha256=wu2m_-lGPO4MDmJrUPBYrGDUD7BnNPFx0RROeE3-qP0,2983
+django/contrib/gis/gdal/envelope.py,sha256=jL_fm04Lx71ouo2sZgOsh-PZQf_bLDrml-KFFq6ExPk,7316
+django/contrib/gis/gdal/error.py,sha256=RcESzxTt3jMKk9s82y2Dj7nMcuoSAMOCX1eo5KFYUfw,1575
+django/contrib/gis/gdal/feature.py,sha256=HPWoCZjwzsUnhc7QmKh-BBMRqJCjj07RcFI6vjbdnp4,4017
+django/contrib/gis/gdal/field.py,sha256=EKE-Ioj5L79vo93Oixz_JE4TIZbDTRy0YVGvZH-I1z4,6886
+django/contrib/gis/gdal/geometries.py,sha256=FkJh447xjZ74hRGfpjVzjrfTiCVpxWRNvHgELclthCc,29286
+django/contrib/gis/gdal/geomtype.py,sha256=CWqbe5XtpgKiBP8Lbisbtb8o1FtuIUVb37Eb02i6TSE,4582
+django/contrib/gis/gdal/layer.py,sha256=PygAgsRZzWekp6kq6NEAZ6vhQTSo1Nk4c1Yi_pOdK58,8825
+django/contrib/gis/gdal/libgdal.py,sha256=F1n-2MC7MY7lYYUvIDmkZb5MBj11h8bPOuvozsgPZ9s,3619
+django/contrib/gis/gdal/prototypes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/gdal/prototypes/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/ds.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/errcheck.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/generation.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/geom.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/raster.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/__pycache__/srs.cpython-311.pyc,,
+django/contrib/gis/gdal/prototypes/ds.py,sha256=1aSaQgxivM0PYc1Y7jHbFeqjdSSX_xZHYPlsveCOeN8,4725
+django/contrib/gis/gdal/prototypes/errcheck.py,sha256=DXLq_ppsgOXNhkRLJ939fo9FvRS0WhVqZDrpbZRQ2Dk,4172
+django/contrib/gis/gdal/prototypes/generation.py,sha256=fm3iMpp8TfaIx72jFNqs7YrHX5KLz0_DUTumaNhOI_M,4888
+django/contrib/gis/gdal/prototypes/geom.py,sha256=r23rTpJhgMiw30GdLO37UThESeVuOfSIZcaure4Zy5c,6233
+django/contrib/gis/gdal/prototypes/raster.py,sha256=jPOBqT6580qCThK5PhigyELzxMdp05RgI4hAKSlie_0,5571
+django/contrib/gis/gdal/prototypes/srs.py,sha256=52Aq0F7CT0_SqoMCaiIXVDVQ9dsnLGGIYXo5jf3EDDU,3677
+django/contrib/gis/gdal/raster/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/gdal/raster/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/gdal/raster/__pycache__/band.cpython-311.pyc,,
+django/contrib/gis/gdal/raster/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/gdal/raster/__pycache__/const.cpython-311.pyc,,
+django/contrib/gis/gdal/raster/__pycache__/source.cpython-311.pyc,,
+django/contrib/gis/gdal/raster/band.py,sha256=RPdut6BeQ9vW71rrPMwb2CnXrbCys8YAt1BA8Aholy0,8343
+django/contrib/gis/gdal/raster/base.py,sha256=2GGlL919lPr7YVGFtdIynLPIH-QKYhzrUpoXwVRlM1k,2882
+django/contrib/gis/gdal/raster/const.py,sha256=C_svBc-x052KJojH1t3pD1N29d67hQxyN8rm8u0141o,3283
+django/contrib/gis/gdal/raster/source.py,sha256=NmsCjTWDbNFt7oEWfSQSN7ZlofyDZ2yJ3ClSAfDjiW0,18394
+django/contrib/gis/gdal/srs.py,sha256=fbekX1cVeVT_36NwGqsbXMJ9xNlftLRVRcOSQL1p8Gk,12301
+django/contrib/gis/geoip2.py,sha256=yO0AGB3WIPZzwLZ_YVrwh0ph-FnS8MCoXpLttE-VyVg,9399
+django/contrib/gis/geometry.py,sha256=oyapp3-FbCo1f2RQZhDwg-JD2sg1bq5Cgzpfxj-UmuE,788
+django/contrib/gis/geos/LICENSE,sha256=CL8kt1USOK4yUpUkVCWxyuua0PQvni0wPHs1NQJjIEU,1530
+django/contrib/gis/geos/__init__.py,sha256=7BIDN_LCzaNYi0RiDiPwxdm1G76cCiTBJLswcM6CMZI,661
+django/contrib/gis/geos/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/base.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/collections.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/coordseq.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/error.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/factory.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/geometry.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/io.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/libgeos.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/linestring.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/mutable_list.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/point.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/polygon.cpython-311.pyc,,
+django/contrib/gis/geos/__pycache__/prepared.cpython-311.pyc,,
+django/contrib/gis/geos/base.py,sha256=NdlFg5l9akvDp87aqzh9dk0A3ZH2TI3cOq10mmmuHBk,181
+django/contrib/gis/geos/collections.py,sha256=m9Soitiu7cOEUdIrTZ-j5ZHn6HjmXsyWxXzC5DyTSm0,3939
+django/contrib/gis/geos/coordseq.py,sha256=YJAneODq8jUeJij_NTDPxHICdNmToHvv-KdLZnRyz50,6838
+django/contrib/gis/geos/error.py,sha256=AdeCRUVPa-G22WA5lJ5QqU4T0k79NLk1hy3n5-expfs,105
+django/contrib/gis/geos/factory.py,sha256=KQF6lqAh5KRlFSDgN-BSXWojmWFabbEUFgz2IGYX_vk,961
+django/contrib/gis/geos/geometry.py,sha256=Z34Skz4Hy-TEns5MMa40mIiR3rjHTgH9wYsunBr2htI,26650
+django/contrib/gis/geos/io.py,sha256=GCUL4p6B7FYAHOcPcbTc-QLuSJ3rtvKvU7vfzZpUlsg,800
+django/contrib/gis/geos/libgeos.py,sha256=ewU31F5eQFu4xAXvKAFbaZn4UJ0g_aiDTGuRk_MTwOo,4983
+django/contrib/gis/geos/linestring.py,sha256=BJAoWfHW08EX1UpNFVB09iSKXdTS6pZsTIBc6DcZcfc,6372
+django/contrib/gis/geos/mutable_list.py,sha256=nthCtQ0FsJrDGd29cSERwXb-tJkpK35Vc0T_ywCnXgc,10121
+django/contrib/gis/geos/point.py,sha256=bvatsdXTb1XYy1EaSZvp4Rnr2LwXZU12zILefLu6sRw,4781
+django/contrib/gis/geos/polygon.py,sha256=DZq6Ed9bJA3MqhpDQ9u926hHxcnxBjnbKSppHgbShxw,6710
+django/contrib/gis/geos/prepared.py,sha256=J5Dj6e3u3gEfVPNOM1E_rvcmcXR2-CdwtbAcoiDU5a0,1577
+django/contrib/gis/geos/prototypes/__init__.py,sha256=aYQVHVT7hAN0jSH4ioDcb5yfnJdFBmouHXfRNDbzE0M,1435
+django/contrib/gis/geos/prototypes/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/coordseq.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/errcheck.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/geom.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/io.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/misc.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/predicates.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/prepared.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/threadsafe.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/__pycache__/topology.cpython-311.pyc,,
+django/contrib/gis/geos/prototypes/coordseq.py,sha256=GpNDnUiIg76I-qad72DGw7wEz3i5H_XH9YHO4CvYTys,3124
+django/contrib/gis/geos/prototypes/errcheck.py,sha256=SWHaBSMBPJofTPq0moiDHrCInl5P1vYaqbXgAKbBvTQ,2788
+django/contrib/gis/geos/prototypes/geom.py,sha256=_nnOMLRKNS9zmcBYsivcewl10Ks6WME0Yp-ERvADa2k,3401
+django/contrib/gis/geos/prototypes/io.py,sha256=j5379Sb-uLjW7SpxQiOeDvcJjrb1ZCa9bOa6IhD6sWI,11321
+django/contrib/gis/geos/prototypes/misc.py,sha256=Sj0fZygL7MFR4pp_xPJiZHRBufnVk5YfK5LeUv2htWs,1167
+django/contrib/gis/geos/prototypes/predicates.py,sha256=Z__y5ZMvpZS718JQsGKHdZ27gXZ6sC9xwD7fWv4CAmc,1662
+django/contrib/gis/geos/prototypes/prepared.py,sha256=4I9pS75Q5MZ1z8A1v0mKkmdCly33Kj_0sDcrqxOppzM,1175
+django/contrib/gis/geos/prototypes/threadsafe.py,sha256=n1yCYvQCtc7piFrhjeZCWH8Pf0-AiOGBH33VZusTgWI,2302
+django/contrib/gis/geos/prototypes/topology.py,sha256=uJ9MOvjGhgEuz6irMDhZEWO_UDd_RMtp5ZfbWvf2hgI,2327
+django/contrib/gis/locale/af/LC_MESSAGES/django.mo,sha256=FWnPEpxhJG9xJ-uOTFryxIT6BFN3w-bsgqLn0IHF-Ew,518
+django/contrib/gis/locale/af/LC_MESSAGES/django.po,sha256=v5LXHABklHAVbfrPEx3xXGIHIZ4hz4MmfvZ6beC-XF4,1540
+django/contrib/gis/locale/ar/LC_MESSAGES/django.mo,sha256=5LCO903yJTtRVaaujBrmwMx8f8iLa3ihasgmj8te9eg,2301
+django/contrib/gis/locale/ar/LC_MESSAGES/django.po,sha256=pfUyK0VYgY0VC2_LvWZvG_EEIWa0OqIUfhiPT2Uov3Q,2569
+django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=1e2lutVEjsa5vErMdjS6gaBbOLPTVIpDv15rax-wvKg,2403
+django/contrib/gis/locale/ar_DZ/LC_MESSAGES/django.po,sha256=dizXM36w-rUtI7Dv2mSoJDR5ouVR6Ar7zqjywX3xKr0,2555
+django/contrib/gis/locale/ast/LC_MESSAGES/django.mo,sha256=8o0Us4wR14bdv1M5oBeczYC4oW5uKnycWrj1-lMIqV4,850
+django/contrib/gis/locale/ast/LC_MESSAGES/django.po,sha256=0beyFcBkBOUNvPP45iqewTNv2ExvCPvDYwpafCJY5QM,1684
+django/contrib/gis/locale/az/LC_MESSAGES/django.mo,sha256=FOvFUN-kdoX5OvhaVJg3v4rOyQgAQ_YC--TCE3m4kXs,1901
+django/contrib/gis/locale/az/LC_MESSAGES/django.po,sha256=exlD78A7sUZBPuoLyQGZoYiBa2wWGWnsWKq0gUYUOng,2118
+django/contrib/gis/locale/be/LC_MESSAGES/django.mo,sha256=XcJGF9cH7M30Q8EwqovjAeiJFgB2PR4sXsbxdvVURjg,2389
+django/contrib/gis/locale/be/LC_MESSAGES/django.po,sha256=Cp_DXKCVHzYTA7v65TpjRhCJonkgI5Gy13Tfg1rkVp8,2596
+django/contrib/gis/locale/bg/LC_MESSAGES/django.mo,sha256=lLfpqEEEb1RYzy270gpDdEfv5k5jscyNgJv_Ok_BA_A,2323
+django/contrib/gis/locale/bg/LC_MESSAGES/django.po,sha256=hSxYwbKr-IqP5hJaPKQxoL1DkCIg60suHl1H8u8W7jQ,2586
+django/contrib/gis/locale/bn/LC_MESSAGES/django.mo,sha256=7oNsr_vHQfsanyP-o1FG8jZTSBK8jB3eK2fA9AqNOx4,1070
+django/contrib/gis/locale/bn/LC_MESSAGES/django.po,sha256=PTa9EFZdqfznUH7si3Rq3zp1kNkTOnn2HRTEYXQSOdM,1929
+django/contrib/gis/locale/br/LC_MESSAGES/django.mo,sha256=xN8hOvJi_gDlpdC5_lghXuX6yCBYDPfD_SQLjcvq8gU,1614
+django/contrib/gis/locale/br/LC_MESSAGES/django.po,sha256=LQw3Tp_ymJ_x7mJ6g4SOr6aP00bejkjuaxfFFRZnmaQ,2220
+django/contrib/gis/locale/bs/LC_MESSAGES/django.mo,sha256=9EdKtZkY0FX2NlX_q0tIxXD-Di0SNQJZk3jo7cend0A,1308
+django/contrib/gis/locale/bs/LC_MESSAGES/django.po,sha256=eu_qF8dbmlDiRKGNIz80XtIunrF8QIOcy8O28X02GvQ,1905
+django/contrib/gis/locale/ca/LC_MESSAGES/django.mo,sha256=6aq8xNlP95HRncIB6ThimqW14XFKp7OOjo0S0uT6d-Y,1948
+django/contrib/gis/locale/ca/LC_MESSAGES/django.po,sha256=0Tj64N9TVX-oDyq4srBCgqELmM8OjMgXC5Lci844Fvc,2298
+django/contrib/gis/locale/ckb/LC_MESSAGES/django.mo,sha256=tIH0KyO3XREfX8htOCAK6cJSZkS0BCE15AZngco_Vkw,2253
+django/contrib/gis/locale/ckb/LC_MESSAGES/django.po,sha256=krJj0SQiLAcc1uNA9Qazqy9Ty-7MhauoaIDHtjmPPfo,2442
+django/contrib/gis/locale/cs/LC_MESSAGES/django.mo,sha256=ia8l06-eW5VkQnNQU0aizio7pz_pSGA-KRk-liGRa2w,2026
+django/contrib/gis/locale/cs/LC_MESSAGES/django.po,sha256=8taX01JBHhr19_AKhfhbtlpt-TW1aOBwejN-o-HH5Xk,2274
+django/contrib/gis/locale/cy/LC_MESSAGES/django.mo,sha256=vUG_wzZaMumPwIlKwuN7GFcS9gnE5rpflxoA_MPM_po,1430
+django/contrib/gis/locale/cy/LC_MESSAGES/django.po,sha256=_QjXT6cySUXrjtHaJ3046z-5PoXkCqtOhvA7MCZsXxk,1900
+django/contrib/gis/locale/da/LC_MESSAGES/django.mo,sha256=eXid2KAU_8fd23jMFo41iJ3DntVNe0w939_UsBymGM4,1862
+django/contrib/gis/locale/da/LC_MESSAGES/django.po,sha256=9bSpjg9wv7nvWoaOfRhXKsuxVoMzOHU-fsnVNB8qbxM,2158
+django/contrib/gis/locale/de/LC_MESSAGES/django.mo,sha256=fECmj81LHOUcBcQ_PoQWlijVp3SjTG3GwsSRiUGMXOU,1930
+django/contrib/gis/locale/de/LC_MESSAGES/django.po,sha256=DB_2QZ0IHOxKJ51ZyJCNX24597W7DBc_DT1B-oId-bY,2129
+django/contrib/gis/locale/dsb/LC_MESSAGES/django.mo,sha256=YZOA1XJqoU3rI5REairrs9f36Cet75NmC8WXdApx0Mc,2016
+django/contrib/gis/locale/dsb/LC_MESSAGES/django.po,sha256=w36vo0t-HzjhslJLo5xesc1vVfl94sNP3XyyDcETDn0,2177
+django/contrib/gis/locale/el/LC_MESSAGES/django.mo,sha256=g3SeFfO8xTxsvs2jKG9CI99fTnVa-WuBMNG0FFGc0s8,2402
+django/contrib/gis/locale/el/LC_MESSAGES/django.po,sha256=7MATPbwGZGgWabd9BdmUCwxc2iAG2aeac9ltKsieuME,2853
+django/contrib/gis/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/gis/locale/en/LC_MESSAGES/django.po,sha256=lXk5x3FBMnRKocOgqDiya7yKeXZqk9gkibxyADRQjOU,2074
+django/contrib/gis/locale/en_AU/LC_MESSAGES/django.mo,sha256=IPn5kRqOvv5S7jpbIUw8PEUkHlyjEL-4GuOANd1iAzI,486
+django/contrib/gis/locale/en_AU/LC_MESSAGES/django.po,sha256=x_58HmrHRia2LoYhmmN_NLb1J3f7oTDvwumgTo0LowI,1494
+django/contrib/gis/locale/en_GB/LC_MESSAGES/django.mo,sha256=WkORQDOsFuV2bI7hwVsJr_JTWnDQ8ZaK-VYugqnLv3w,1369
+django/contrib/gis/locale/en_GB/LC_MESSAGES/django.po,sha256=KWPMoX-X-gQhb47zoVsa79-16-SiCGpO0s4xkcGv9z0,1910
+django/contrib/gis/locale/eo/LC_MESSAGES/django.mo,sha256=FFSZ58VHOog4-tDy88OISaaLXMaHVuFsIr3uevM-LGc,1878
+django/contrib/gis/locale/eo/LC_MESSAGES/django.po,sha256=oyMvu7r3BKLV9VDYQI6IgjumYusSOgynlSdN3dDrcPo,2156
+django/contrib/gis/locale/es/LC_MESSAGES/django.mo,sha256=JTo6frVHdq3bDY7IwpP5K6Znbb0NXMyVBv-AOQ6gd9s,2005
+django/contrib/gis/locale/es/LC_MESSAGES/django.po,sha256=3xK9yehM6kTSbulhvTenKXmlBeUnfgqM3_a7waiNit4,2465
+django/contrib/gis/locale/es_AR/LC_MESSAGES/django.mo,sha256=Z_2xqsHzQNSQWphm6jV9efFFjzHmkmuk2KfLZXx5E1k,2006
+django/contrib/gis/locale/es_AR/LC_MESSAGES/django.po,sha256=_PHHHfzhzPI5xaZwDH6Rd35KEbj1l1-9IyPLEENaw6E,2161
+django/contrib/gis/locale/es_CO/LC_MESSAGES/django.mo,sha256=mMnOZTrmWutn2Lwv2Y7GuoZIhIbPsMCXJkdmeatXZaM,1817
+django/contrib/gis/locale/es_CO/LC_MESSAGES/django.po,sha256=JF0-_eNt-BPJ__GqNoEj7iKEOV8htZHyX5kZue-PZO4,2349
+django/contrib/gis/locale/es_MX/LC_MESSAGES/django.mo,sha256=bC-uMgJXdbKHQ-w7ez-6vh9E_2YSgCF_LkOQlvb60BU,1441
+django/contrib/gis/locale/es_MX/LC_MESSAGES/django.po,sha256=MYO9fGclp_VvLG5tXDjXY3J_1FXI4lDv23rGElXAyjA,1928
+django/contrib/gis/locale/es_VE/LC_MESSAGES/django.mo,sha256=5YVIO9AOtmjky90DAXVyU0YltfQ4NLEpVYRTTk7SZ5o,486
+django/contrib/gis/locale/es_VE/LC_MESSAGES/django.po,sha256=R8suLsdDnSUEKNlXzow3O6WIT5NcboZoCjir9GfSTSQ,1494
+django/contrib/gis/locale/et/LC_MESSAGES/django.mo,sha256=-Gn24H3qyIcf3ptRe7Iin8sHc6JtkkFsmJF4DI1Wwhs,1872
+django/contrib/gis/locale/et/LC_MESSAGES/django.po,sha256=c-8desC8uDUy9UrX3IicuGICF2xAWPudgAprvS3G7jY,2223
+django/contrib/gis/locale/eu/LC_MESSAGES/django.mo,sha256=c2YYr77DeKdHWhpq6T472Hc1wpzYQ1fgKXELx7GMW_U,1888
+django/contrib/gis/locale/eu/LC_MESSAGES/django.po,sha256=HVR7BSXjUy3pphfPKp2uapaKVnQeb3chQIxcG5bMxHY,2147
+django/contrib/gis/locale/fa/LC_MESSAGES/django.mo,sha256=oSM2n6s-E4eomcHHZT6gY0PrhUFDr7Wijs3Qkr62jX0,2155
+django/contrib/gis/locale/fa/LC_MESSAGES/django.po,sha256=uUaUbYmjFcZ3mp9-FmGVT3zv47n54sWtzaXHWFSpMik,2507
+django/contrib/gis/locale/fi/LC_MESSAGES/django.mo,sha256=A1QOLEk9dFKcxlE2puSLmdDdFWRwGbSKsDGbKemUsCM,1839
+django/contrib/gis/locale/fi/LC_MESSAGES/django.po,sha256=IbtvFNK1bXmck5zZQqXNCDSiuXcGonNl8UcN0BfopFQ,2064
+django/contrib/gis/locale/fr/LC_MESSAGES/django.mo,sha256=LXchLaOY_bGIf25s_rQgWHOvEMD-l8_HAT5WtC0irfs,2058
+django/contrib/gis/locale/fr/LC_MESSAGES/django.po,sha256=FVuGpVTPP2-f4CZKL0UZwLSxy2WiDczw9_q3KRTbclQ,2258
+django/contrib/gis/locale/fy/LC_MESSAGES/django.mo,sha256=2kCnWU_giddm3bAHMgDy0QqNwOb9qOiEyCEaYo1WdqQ,476
+django/contrib/gis/locale/fy/LC_MESSAGES/django.po,sha256=7ncWhxC5OLhXslQYv5unWurhyyu_vRsi4bGflZ6T2oQ,1484
+django/contrib/gis/locale/ga/LC_MESSAGES/django.mo,sha256=5oExwd6zeo9pBXhr1u_su8cllMEOQ-PnkUCkqFcQyYo,1957
+django/contrib/gis/locale/ga/LC_MESSAGES/django.po,sha256=CZngY66ohYP6Xr25Cghym_gW2AKpQlRRdIBYBMej5AY,2193
+django/contrib/gis/locale/gd/LC_MESSAGES/django.mo,sha256=w9d6GRaJMzeRVMzOuapvpPayOQmrFQEwPf8g4TXSatg,2022
+django/contrib/gis/locale/gd/LC_MESSAGES/django.po,sha256=2jXpd-BBQ7JVj2l9tWhIkUXw4ZZPnGJrvHjs442GEx8,2197
+django/contrib/gis/locale/gl/LC_MESSAGES/django.mo,sha256=vjZQqAw3rDSY8Tgv-12EOhsqfFlaEOB7mVBOH6YlXNo,1956
+django/contrib/gis/locale/gl/LC_MESSAGES/django.po,sha256=zhqF1InI8QaKhDLqjfTRUbMPaT9X3D1eI1ocV5FHGf4,2231
+django/contrib/gis/locale/he/LC_MESSAGES/django.mo,sha256=qaxQ0A76SO7GM5WDK0_3pAJDFzkvAtjSV8r1P4ySCVY,2135
+django/contrib/gis/locale/he/LC_MESSAGES/django.po,sha256=f8w5v4W7w47vH6Tq4HfMOX9jB4ab0oEXnpuJcDlk7Ak,2336
+django/contrib/gis/locale/hi/LC_MESSAGES/django.mo,sha256=3nsy5mxKTPtx0EpqBNA_TJXmLmVZ4BPUZG72ZEe8OPM,1818
+django/contrib/gis/locale/hi/LC_MESSAGES/django.po,sha256=jTFG2gqqYAQct9-to0xL2kUFQu-ebR4j7RGfxn4sBAg,2372
+django/contrib/gis/locale/hr/LC_MESSAGES/django.mo,sha256=0XrRj2oriNZxNhEwTryo2zdMf-85-4X7fy7OJhB5ub4,1549
+django/contrib/gis/locale/hr/LC_MESSAGES/django.po,sha256=iijzoBoD_EJ1n-a5ys5CKnjzZzG299zPoCN-REFkeqE,2132
+django/contrib/gis/locale/hsb/LC_MESSAGES/django.mo,sha256=oXaJFKOmRL_hRqAbghejIgZiq67bAnrOV0eFpoqmyW0,1991
+django/contrib/gis/locale/hsb/LC_MESSAGES/django.po,sha256=uktC4ibheBFFZVh0LVtRVUT3RnefGXVOVQddK70hdgg,2155
+django/contrib/gis/locale/hu/LC_MESSAGES/django.mo,sha256=dXlt0Oq_W45B_Foneh2FgpExduFanuG7ia0wKsYCUqs,1891
+django/contrib/gis/locale/hu/LC_MESSAGES/django.po,sha256=Ws1oB2MpVa90a0JNK2LxsZytKBuMMNwLx0DW1sem4Es,2210
+django/contrib/gis/locale/hy/LC_MESSAGES/django.mo,sha256=pi9oAP8fLCg8ssz7ADZ_p9HntyDtdQ1Mep6KsR5Glfs,2020
+django/contrib/gis/locale/hy/LC_MESSAGES/django.po,sha256=FKRbr93M2S4dLWes80CTZ1AucKW8MF5cw98i0s8qZo4,2260
+django/contrib/gis/locale/ia/LC_MESSAGES/django.mo,sha256=gSHcbhwZ2H1amTQbWw908L0aTniLzK8T2RVGsiHuKIY,1812
+django/contrib/gis/locale/ia/LC_MESSAGES/django.po,sha256=IyKoOfc6ZNtvpL8s-r4lv41wlsCyq8CGNoNp7uHWUGE,2122
+django/contrib/gis/locale/id/LC_MESSAGES/django.mo,sha256=dzDiuO47A6XWR3G-OrY-A2c-7ccp1oGLlKPyUO2Wlpg,1862
+django/contrib/gis/locale/id/LC_MESSAGES/django.po,sha256=KZVcWZ_X8x3LO5Z4V-hzSEsvE-BEHIZq5eWJlW1SwZs,2278
+django/contrib/gis/locale/io/LC_MESSAGES/django.mo,sha256=_yUgF2fBUxVAZAPNw2ROyWly5-Bq0niGdNEzo2qbp8k,464
+django/contrib/gis/locale/io/LC_MESSAGES/django.po,sha256=fgGJ1xzliMK0MlVoV9CQn_BuuS3Kl71Kh5YEybGFS0Y,1472
+django/contrib/gis/locale/is/LC_MESSAGES/django.mo,sha256=UQb3H5F1nUxJSrADpLiYe12TgRhYKCFQE5Xy13MzEqU,1350
+django/contrib/gis/locale/is/LC_MESSAGES/django.po,sha256=8QWtgdEZR7OUVXur0mBCeEjbXTBjJmE-DOiKe55FvMo,1934
+django/contrib/gis/locale/it/LC_MESSAGES/django.mo,sha256=8VddOMr-JMs5D-J5mq-UgNnhf98uutpoJYJKTr8E224,1976
+django/contrib/gis/locale/it/LC_MESSAGES/django.po,sha256=Vp1G-GChjjTsODwABsg5LbmR6_Z-KpslwkNUipuOqk4,2365
+django/contrib/gis/locale/ja/LC_MESSAGES/django.mo,sha256=SY1Kxu_gIqusDX5-4SvWmfGi5zG_-jG_98wbkkUyMfk,2052
+django/contrib/gis/locale/ja/LC_MESSAGES/django.po,sha256=tui2WDqNwYHiOkR9j9kl8YSs_kzZ5MTHAj9hniHKI_8,2357
+django/contrib/gis/locale/ka/LC_MESSAGES/django.mo,sha256=iqWQ9j8yanPjDhwi9cNSktYgfLVnofIsdICnAg2Y_to,1991
+django/contrib/gis/locale/ka/LC_MESSAGES/django.po,sha256=rkM7RG0zxDN8vqyAudmk5nocajhOYP6CTkdJKu21Pf4,2571
+django/contrib/gis/locale/kk/LC_MESSAGES/django.mo,sha256=NtgQONp0UncUNvrh0W2R7u7Ja8H33R-a-tsQShWq-QI,1349
+django/contrib/gis/locale/kk/LC_MESSAGES/django.po,sha256=78OMHuerBJZJZVo9GjGJ1h5fwdLuSc_X03ZhSRibtf4,1979
+django/contrib/gis/locale/km/LC_MESSAGES/django.mo,sha256=T0aZIZ_gHqHpQyejnBeX40jdcfhrCOjgKjNm2hLrpNE,459
+django/contrib/gis/locale/km/LC_MESSAGES/django.po,sha256=7ARjFcuPQJG0OGLJu9pVfSiAwc2Q-1tT6xcLeKeom1c,1467
+django/contrib/gis/locale/kn/LC_MESSAGES/django.mo,sha256=EkJRlJJSHZJvNZJuOLpO4IIUEoyi_fpKwNWe0OGFcy4,461
+django/contrib/gis/locale/kn/LC_MESSAGES/django.po,sha256=MnsSftGvmgJgGfgayQUVDMj755z8ItkM9vBehORfYbk,1475
+django/contrib/gis/locale/ko/LC_MESSAGES/django.mo,sha256=TyIytTrPe4GO6lRsK1CW0wIdhbrwDHxlO_29OX6MoH4,1888
+django/contrib/gis/locale/ko/LC_MESSAGES/django.po,sha256=V5OQ0oW3zU8MMdlOJXk-4RQo0UV3cCAhgSMOaQRgttM,2296
+django/contrib/gis/locale/ky/LC_MESSAGES/django.mo,sha256=nvMSOW77P-YCRkQgrQUpM94FexqLEt8Et0jri2nm_Ec,2157
+django/contrib/gis/locale/ky/LC_MESSAGES/django.po,sha256=0qqO8QWgJXPJpZ900MVsHdw6wMZBa0tE5GN3KSGa58E,2372
+django/contrib/gis/locale/lb/LC_MESSAGES/django.mo,sha256=XAyZQUi8jDr47VpSAHp_8nQb0KvSMJHo5THojsToFdk,474
+django/contrib/gis/locale/lb/LC_MESSAGES/django.po,sha256=5rfudPpH4snSq2iVm9E81EBwM0S2vbkY2WBGhpuga1Q,1482
+django/contrib/gis/locale/lt/LC_MESSAGES/django.mo,sha256=AD69M-SBrmQ5qaFKXX6FYOOXLfhuWlQdOYcMlV0UClo,2036
+django/contrib/gis/locale/lt/LC_MESSAGES/django.po,sha256=1yXUj9Hf4D2iyl97HoRuJLkfnR7Z-WmOoIJil98Cy-M,2366
+django/contrib/gis/locale/lv/LC_MESSAGES/django.mo,sha256=8xCXt_MpO_gGyHVT23O5YklfI95WVcuaCg4A_gsKYcc,1969
+django/contrib/gis/locale/lv/LC_MESSAGES/django.po,sha256=OKg4PFO2843D4yTkmqCY9VdndBAvrndP12ZRGTtl6wE,2234
+django/contrib/gis/locale/mk/LC_MESSAGES/django.mo,sha256=fLSXxmJFE9kYsKMiwWAXS-9TweB_yuWzAjR-y0eysvI,2518
+django/contrib/gis/locale/mk/LC_MESSAGES/django.po,sha256=P2IKvpaMOj5UvJX_Lz-PE0-1D7Kt_fYM5Amm3d5g6t4,2918
+django/contrib/gis/locale/ml/LC_MESSAGES/django.mo,sha256=Kl9okrE3AzTPa5WQ-IGxYVNSRo2y_VEdgDcOyJ_Je78,2049
+django/contrib/gis/locale/ml/LC_MESSAGES/django.po,sha256=PWg8atPKfOsnVxg_uro8zYO9KCE1UVhfy_zmCWG0Bdk,2603
+django/contrib/gis/locale/mn/LC_MESSAGES/django.mo,sha256=DlGtHJJMKLVntNdaPBXZw9ApM_SjUYEYAgE9DpZv33w,2323
+django/contrib/gis/locale/mn/LC_MESSAGES/django.po,sha256=z9E7N3TXiMCd2FCunpMjS55-uamM_G4iQpI1MoTDSVY,2766
+django/contrib/gis/locale/mr/LC_MESSAGES/django.mo,sha256=3be2jV7c3MBww-fNMk8A9l9hWDwR4pgSmfztJj6cio0,510
+django/contrib/gis/locale/mr/LC_MESSAGES/django.po,sha256=dKaMdzicJqGwxA5VF1GeM3wGUQOtsnWCeHoGGcjFy-o,1530
+django/contrib/gis/locale/ms/LC_MESSAGES/django.mo,sha256=5_xS-XXVyw0cxvDzUIus5JImr0dkcswait04e7TrUtY,1828
+django/contrib/gis/locale/ms/LC_MESSAGES/django.po,sha256=I8rMkUEfsbjf-dWUuXyhYwCXhyX8AS3jjOKinAh7q2Q,1956
+django/contrib/gis/locale/my/LC_MESSAGES/django.mo,sha256=e6G8VbCCthUjV6tV6PRCy_ZzsXyZ-1OYjbYZIEShbXI,525
+django/contrib/gis/locale/my/LC_MESSAGES/django.po,sha256=R3v1S-904f8FWSVGHe822sWrOJI6cNJIk93-K7_E_1c,1580
+django/contrib/gis/locale/nb/LC_MESSAGES/django.mo,sha256=mx9uGqo5w_uRBWHswuEKoI-U-RX_Xvx_qck5ForI63Y,1808
+django/contrib/gis/locale/nb/LC_MESSAGES/django.po,sha256=LVjQsJxXdDBuKS5D7BEJ10C9OE8x3g0f9ewgjoG6fbY,2039
+django/contrib/gis/locale/ne/LC_MESSAGES/django.mo,sha256=nB-Ta8w57S6hIAhAdWZjDT0Dg6JYGbAt5FofIhJT7k8,982
+django/contrib/gis/locale/ne/LC_MESSAGES/django.po,sha256=eMH6uKZZZYn-P3kmHumiO4z9M4923s9tWGhHuJ0eWuI,1825
+django/contrib/gis/locale/nl/LC_MESSAGES/django.mo,sha256=ScPsjM7aMa8PwcbxliFgqfS7_WyOuTGmODGAZY85UM4,1897
+django/contrib/gis/locale/nl/LC_MESSAGES/django.po,sha256=zoUzuPhO4XGlrhmRluXNRMpjD7lEIjAW8TufBqAOO4o,2408
+django/contrib/gis/locale/nn/LC_MESSAGES/django.mo,sha256=P1RU0OICBDeHHtX6rCSB4xXgS4Qn97LqoxJ8phgiMDs,1830
+django/contrib/gis/locale/nn/LC_MESSAGES/django.po,sha256=-mkHmKp3b76uZlFOG3lFLp2nEFtBRV_4ThDPQmUWtX4,2027
+django/contrib/gis/locale/os/LC_MESSAGES/django.mo,sha256=02NpGC8WPjxmPqQkfv9Kj2JbtECdQCtgecf_Tjk1CZc,1594
+django/contrib/gis/locale/os/LC_MESSAGES/django.po,sha256=JBIsv5nJg3Wof7Xy7odCI_xKRBLN_Hlbb__kNqNW4Xw,2161
+django/contrib/gis/locale/pa/LC_MESSAGES/django.mo,sha256=JR1NxG5_h_dFE_7p6trBWWIx-QqWYIgfGomnjaCsWAA,1265
+django/contrib/gis/locale/pa/LC_MESSAGES/django.po,sha256=Ejd_8dq_M0E9XFijk0qj4oC-8_oe48GWWHXhvOrFlnY,1993
+django/contrib/gis/locale/pl/LC_MESSAGES/django.mo,sha256=KHar168QJ7Mj0419885rkyRXvWXkICAi0hUbb8KssY8,2045
+django/contrib/gis/locale/pl/LC_MESSAGES/django.po,sha256=cfeYjcF9R8VKujBMGLx_1z9zDY19DPCjUw5FpHuBIqs,2487
+django/contrib/gis/locale/pt/LC_MESSAGES/django.mo,sha256=jVbgYlgnF_YezBej_ya-8lDw-_x-NBP9qMj5j3DtTP4,1979
+django/contrib/gis/locale/pt/LC_MESSAGES/django.po,sha256=wutrlVt4YybpkxddqfnmuHCOhvjIGJMkB9hXYdBkayY,2483
+django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.mo,sha256=5HGIao480s3B6kXtSmdy1AYjGUZqbYuZ9Eapho_jkTk,1976
+django/contrib/gis/locale/pt_BR/LC_MESSAGES/django.po,sha256=4-2WPZT15YZPyYbH7xnBRc7A8675875kVFjM9tr1o5U,2333
+django/contrib/gis/locale/ro/LC_MESSAGES/django.mo,sha256=jncf415WRI-GaemNGtbXITeYpx2zbokFNfQkONIOSO4,1770
+django/contrib/gis/locale/ro/LC_MESSAGES/django.po,sha256=5Xb2c11mwOdsd1D8SZC5u6nsuNjWEtdT1hslrQBfxP0,2181
+django/contrib/gis/locale/ru/LC_MESSAGES/django.mo,sha256=j9DEE5SVvEXWBj_PtR9_1IsaE-YCq4iOBcaiyHHqOEo,2481
+django/contrib/gis/locale/ru/LC_MESSAGES/django.po,sha256=fgj-PmNJ88IsjUUq7x9W6KSwXWdmnEq1PBlWsLFhzwE,2835
+django/contrib/gis/locale/sk/LC_MESSAGES/django.mo,sha256=FQy4gMIxrXNm42pvJ61q4ZfG0Ce98gv78b2I0vYN2CY,1980
+django/contrib/gis/locale/sk/LC_MESSAGES/django.po,sha256=z7uy3S2VXGZKMfgFLISYUPUb-zyEYXqlDgL_ODmb_4w,2315
+django/contrib/gis/locale/sl/LC_MESSAGES/django.mo,sha256=Ha88TShV2Bt_Jmvlkkc81CUkuV2iKfhGjzpD7KLMhv8,1972
+django/contrib/gis/locale/sl/LC_MESSAGES/django.po,sha256=B81yHSMjOYevk35kC4JEi4Ua3axjadkFW8aRuMnj6P0,2319
+django/contrib/gis/locale/sq/LC_MESSAGES/django.mo,sha256=XPieM0pMyhrgOs-c3shBBiEfFLCrN__Kumyb7PK25-c,1835
+django/contrib/gis/locale/sq/LC_MESSAGES/django.po,sha256=l06nidL-0TDjjesqW-Q_dxMBQOfGRSyCj-fdhBURFs4,2172
+django/contrib/gis/locale/sr/LC_MESSAGES/django.mo,sha256=bM996RqI1wt4qHsUaGXoEO3fnaSZdjVD2TvUFDp5dVk,2365
+django/contrib/gis/locale/sr/LC_MESSAGES/django.po,sha256=hunakYgljjOiiYF98ZzFzIHTkIAGQM_IJLiLfmlR86Q,2628
+django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=kniIObavM7XKqD5vcglrbcD8jqANKg7hN6AP4cIVAI0,1981
+django/contrib/gis/locale/sr_Latn/LC_MESSAGES/django.po,sha256=A2NsZJvk2Cckg8OS3yW_T11Tcv5-zgGEHcDRJpvE8Zg,2206
+django/contrib/gis/locale/sv/LC_MESSAGES/django.mo,sha256=CowUAoL4t4np5cBndBNM-a4Wu5oD899nVfifMOLz6xQ,1880
+django/contrib/gis/locale/sv/LC_MESSAGES/django.po,sha256=Xyzc8X3vwQ3wWfS4_5mpwFXPPAeCx4mODYFq3Kba04g,2252
+django/contrib/gis/locale/sw/LC_MESSAGES/django.mo,sha256=uBhpGHluGwYpODTE-xhdJD2e6PHleN07wLE-kjrXr_M,1426
+django/contrib/gis/locale/sw/LC_MESSAGES/django.po,sha256=nHXQQMYYXT1ec3lIBxQIDIAwLtXucX47M4Cozy08kko,1889
+django/contrib/gis/locale/ta/LC_MESSAGES/django.mo,sha256=Rboo36cGKwTebe_MiW4bOiMsRO2isB0EAyJJcoy_F6s,466
+django/contrib/gis/locale/ta/LC_MESSAGES/django.po,sha256=sLYW8_5BSVoSLWUr13BbKRe0hNJ_cBMEtmjCPBdTlAk,1474
+django/contrib/gis/locale/te/LC_MESSAGES/django.mo,sha256=xDkaSztnzQ33Oc-GxHoSuutSIwK9A5Bg3qXEdEvo4h4,824
+django/contrib/gis/locale/te/LC_MESSAGES/django.po,sha256=nYryhktJumcwtZDGZ43xBxWljvdd-cUeBrAYFZOryVg,1772
+django/contrib/gis/locale/tg/LC_MESSAGES/django.mo,sha256=6Jyeaq1ORsnE7Ceh_rrhbfslFskGe12Ar-dQl6NFyt0,611
+django/contrib/gis/locale/tg/LC_MESSAGES/django.po,sha256=9c1zPt7kz1OaRJPPLdqjQqO8MT99KtS9prUvoPa9qJk,1635
+django/contrib/gis/locale/th/LC_MESSAGES/django.mo,sha256=0kekAr7eXc_papwPAxEZ3TxHOBg6EPzdR3q4hmAxOjg,1835
+django/contrib/gis/locale/th/LC_MESSAGES/django.po,sha256=WJPdoZjLfvepGGMhfBB1EHCpxtxxfv80lRjPG9kGErM,2433
+django/contrib/gis/locale/tr/LC_MESSAGES/django.mo,sha256=5EKMteFT0WXGacwXnRt5Eak00kbtYmqskkuCg2rGvyc,1904
+django/contrib/gis/locale/tr/LC_MESSAGES/django.po,sha256=DSIty_3V3G_Pv498EU3H60-5jS0b1S5tPwR_fkwpq98,2180
+django/contrib/gis/locale/tt/LC_MESSAGES/django.mo,sha256=cGVPrWCe4WquVV77CacaJwgLSnJN0oEAepTzNMD-OWk,1470
+django/contrib/gis/locale/tt/LC_MESSAGES/django.po,sha256=98yeRs-JcMGTyizOpEuQenlnWJMYTR1-rG3HGhKCykk,2072
+django/contrib/gis/locale/udm/LC_MESSAGES/django.mo,sha256=I6bfLvRfMn79DO6bVIGfYSVeZY54N6c8BNO7OyyOOsw,462
+django/contrib/gis/locale/udm/LC_MESSAGES/django.po,sha256=B1PCuPYtNOrrhu4fKKJgkqxUrcEyifS2Y3kw-iTmSIk,1470
+django/contrib/gis/locale/ug/LC_MESSAGES/django.mo,sha256=cKr7ETLbYR1nMm2iJsQwZYKz8U5aP2CX5RdhbKW2gh4,2360
+django/contrib/gis/locale/ug/LC_MESSAGES/django.po,sha256=d1P7kH2ETJ9n34d9ALE0tHWw_1_fq7fuiLBNK2IlM10,2529
+django/contrib/gis/locale/uk/LC_MESSAGES/django.mo,sha256=jsJMgEt6VXoSjksQGngxaywARUsk5tiIKJfUw9kgEBw,2513
+django/contrib/gis/locale/uk/LC_MESSAGES/django.po,sha256=NNAUWdHmhsWtrPIgddjT03k4IeJUlUCYM7n78DisFQw,3015
+django/contrib/gis/locale/ur/LC_MESSAGES/django.mo,sha256=tB5tz7EscuE9IksBofNuyFjk89-h5X7sJhCKlIho5SY,1410
+django/contrib/gis/locale/ur/LC_MESSAGES/django.po,sha256=16m0t10Syv76UcI7y-EXfQHETePmrWX4QMVfyeuX1fQ,2007
+django/contrib/gis/locale/vi/LC_MESSAGES/django.mo,sha256=NT5T0FRCC2XINdtaCFCVUxb5VRv8ta62nE8wwSHGTrc,1384
+django/contrib/gis/locale/vi/LC_MESSAGES/django.po,sha256=y77GtqH5bv1wR78xN5JLHusmQzoENTH9kLf9Y3xz5xk,1957
+django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=NvNiRwwuqrmOWqiiuYhoxTs3CXb9Zq0-R_2YVhY6n34,1760
+django/contrib/gis/locale/zh_Hans/LC_MESSAGES/django.po,sha256=jXKQKr3GOjL5LJ7Mv1O3zpn2hr_sA_31ote8Pzk9tOU,2232
+django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=jbNgO-5ICEWlqu5BaaKrPQ5XIC1CDzpYbbXA6_Xo-D0,1811
+django/contrib/gis/locale/zh_Hant/LC_MESSAGES/django.po,sha256=h72hJ3socDnGCoPHREClni4DxDS0B-n-8EGAADlnmK4,2139
+django/contrib/gis/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/management/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/management/commands/__pycache__/inspectdb.cpython-311.pyc,,
+django/contrib/gis/management/commands/__pycache__/ogrinspect.cpython-311.pyc,,
+django/contrib/gis/management/commands/inspectdb.py,sha256=8WhDOBICFAbLFu7kwAAS4I5pNs_p1BrCv8GJYI3S49k,760
+django/contrib/gis/management/commands/ogrinspect.py,sha256=XnWAbLxRxTSvbKSvjgePN7D1o_Ep4qWkvMwVrG1TpYY,6071
+django/contrib/gis/measure.py,sha256=3Kwchst6tJFwK9tMQb5oD6_eUVNnSMyKruOEDuxT7Rc,12573
+django/contrib/gis/ptr.py,sha256=NeIBB-plwO61wGOOxGg7fFyVXI4a5vbAGUdaJ_Fmjqo,1312
+django/contrib/gis/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/gis/serializers/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/serializers/__pycache__/geojson.cpython-311.pyc,,
+django/contrib/gis/serializers/geojson.py,sha256=YS0GTom8Y7TI4DsORKqpm4X080pyO2-XBnO4FXdZTvE,2876
+django/contrib/gis/shortcuts.py,sha256=aa9zFjVU38qaEvRc0vAH_j2AgAERlI01rphYLHbc7Tg,1027
+django/contrib/gis/sitemaps/__init__.py,sha256=Tjj057omOVcoC5Fb8ITEYVhLm0HcVjrZ1Mbz_tKoD1A,138
+django/contrib/gis/sitemaps/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/sitemaps/__pycache__/kml.cpython-311.pyc,,
+django/contrib/gis/sitemaps/__pycache__/views.cpython-311.pyc,,
+django/contrib/gis/sitemaps/kml.py,sha256=CUn_KKVrwGg2ZmmDcWosBc0QFuJp8hHpeNRCcloVk1U,2573
+django/contrib/gis/sitemaps/views.py,sha256=AFV1ay-oFftFC-IszzeKz3JAGzE0TOCH8pN1cwtg7yI,2353
+django/contrib/gis/static/gis/css/ol3.css,sha256=DmCfOuPC1wUs0kioWxIpSausvF6AYUlURbJLNGyvngA,773
+django/contrib/gis/static/gis/img/draw_line_off.svg,sha256=6XW83xsR5-Guh27UH3y5UFn9y9FB9T_Zc4kSPA-xSOI,918
+django/contrib/gis/static/gis/img/draw_line_on.svg,sha256=Hx-pXu4ped11esG6YjXP1GfZC5q84zrFQDPUo1C7FGA,892
+django/contrib/gis/static/gis/img/draw_point_off.svg,sha256=PICrywZPwuBkaQAKxR9nBJ0AlfTzPHtVn_up_rSiHH4,803
+django/contrib/gis/static/gis/img/draw_point_on.svg,sha256=raGk3oc8w87rJfLdtZ4nIXJyU3OChCcTd4oH-XAMmmM,803
+django/contrib/gis/static/gis/img/draw_polygon_off.svg,sha256=gnVmjeZE2jOvjfyx7mhazMDBXJ6KtSDrV9f0nSzkv3A,981
+django/contrib/gis/static/gis/img/draw_polygon_on.svg,sha256=ybJ9Ww7-bsojKQJtjErLd2cCOgrIzyqgIR9QNhH_ZfA,982
+django/contrib/gis/static/gis/js/OLMapWidget.js,sha256=JdZJtX4EP_pphsjxs7EnZdfHGM1s5Zsn1MQ38JDU0JQ,9019
+django/contrib/gis/templates/gis/kml/base.kml,sha256=VYnJaGgFVHRzDjiFjbcgI-jxlUos4B4Z1hx_JeI2ZXU,219
+django/contrib/gis/templates/gis/kml/placemarks.kml,sha256=TEC81sDL9RK2FVeH0aFJTwIzs6_YWcMeGnHkACJV1Uc,360
+django/contrib/gis/templates/gis/openlayers-osm.html,sha256=TeiUqCjt73W8Hgrp_6zAtk_ZMBxskNN6KHSmnJ1-GD4,378
+django/contrib/gis/templates/gis/openlayers.html,sha256=J9e_MAMgfMR8NFH9bhQ_ZDIsjKCiCfRRp0__bKK6TK4,1418
+django/contrib/gis/utils/__init__.py,sha256=GXqrxwX_3jnbhdt9DX2chGJdeoLFBGwr8GzkJBU-RFQ,682
+django/contrib/gis/utils/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/gis/utils/__pycache__/layermapping.cpython-311.pyc,,
+django/contrib/gis/utils/__pycache__/ogrinfo.cpython-311.pyc,,
+django/contrib/gis/utils/__pycache__/ogrinspect.cpython-311.pyc,,
+django/contrib/gis/utils/__pycache__/srs.cpython-311.pyc,,
+django/contrib/gis/utils/layermapping.py,sha256=HTHrMmWVnp5Sxs95pq_j7kyFUGNKrEbsJWzD3etYdGc,29039
+django/contrib/gis/utils/ogrinfo.py,sha256=6m3KaRzLoZtQ0OSrpRkaFIQXi9YOXTkQcYeqYb0S0nw,1956
+django/contrib/gis/utils/ogrinspect.py,sha256=f31eRqR5ybC-QR2mOjNWszYDANCWdEEgyqeIcvBAC4g,9170
+django/contrib/gis/utils/srs.py,sha256=UXsbxW0cQzdnPKO0d9E5K2HPdekdab5NaLZWNOUq-zk,2962
+django/contrib/gis/views.py,sha256=zdCV8QfUVfxEFGxESsUtCicsbSVtZNI_IXybdmsHKiM,714
+django/contrib/humanize/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/humanize/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/humanize/__pycache__/apps.cpython-311.pyc,,
+django/contrib/humanize/apps.py,sha256=LH3PTbB4V1gbBc8nmCw3BsSuA8La0fNOb4cSISvJAwI,194
+django/contrib/humanize/locale/af/LC_MESSAGES/django.mo,sha256=yFvTzvROTnoZF4ZPAs3z9ireOuOf5gTfECEUdGa4EkM,4224
+django/contrib/humanize/locale/af/LC_MESSAGES/django.po,sha256=m8GF4T4HY4aGsfadUdu04yc7cq9Sm-K5LM-OFjTrq5Y,7541
+django/contrib/humanize/locale/ar/LC_MESSAGES/django.mo,sha256=PokPfBR8w4AbRtNNabl5vO8r5E8_egHvFBjKp4CCvO4,7510
+django/contrib/humanize/locale/ar/LC_MESSAGES/django.po,sha256=QGW-kx-87DlPMGr5l_Eb6Ge-x4tkz2PuwHDe3EIkIQg,12326
+django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=NwCrL5FX_xdxYdqkW_S8tmU8ktDM8LqimmUvkt8me74,9155
+django/contrib/humanize/locale/ar_DZ/LC_MESSAGES/django.po,sha256=tt0AxhohGX79OQ_lX1S5soIo-iSCC07SdAhPpy0O7Q4,15234
+django/contrib/humanize/locale/ast/LC_MESSAGES/django.mo,sha256=WvBk8V6g1vgzGqZ_rR-4p7SMh43PFnDnRhIS9HSwdoQ,3468
+django/contrib/humanize/locale/ast/LC_MESSAGES/django.po,sha256=S9lcUf2y5wR8Ufa-Rlz-M73Z3bMo7zji_63cXwtDK2I,5762
+django/contrib/humanize/locale/az/LC_MESSAGES/django.mo,sha256=ukqeNWHDFXv3XhvfpX8ZU6sb-CrUIx_ks_gwNNWfiFw,4311
+django/contrib/humanize/locale/az/LC_MESSAGES/django.po,sha256=RLGjARRoX9wwBS8Y4EBiC_0iWig93qKaWel4sLOqLhM,7765
+django/contrib/humanize/locale/be/LC_MESSAGES/django.mo,sha256=7KyJKhNqMqv32CPdJi01RPLBefOVCQW-Gx6-Vf9JVrs,6653
+django/contrib/humanize/locale/be/LC_MESSAGES/django.po,sha256=2mbReEHyXhmZysqhSmaT6A2XCHn8mYb2R_O16TMGCAo,10666
+django/contrib/humanize/locale/bg/LC_MESSAGES/django.mo,sha256=jCdDIbqWlhOs-4gML44wSRIXJQxypfak6ByRG_reMsk,4823
+django/contrib/humanize/locale/bg/LC_MESSAGES/django.po,sha256=v2ih4-pL1cdDXaa3uXm9FxRjRKyULLGyz78Q91eKEG8,8267
+django/contrib/humanize/locale/bn/LC_MESSAGES/django.mo,sha256=jbL4ucZxxtexI10jgldtgnDie3I23XR3u-PrMMMqP6U,4026
+django/contrib/humanize/locale/bn/LC_MESSAGES/django.po,sha256=0l4yyy7q3OIWyFk_PW0y883Vw2Pmu48UcnLM9OBxB68,6545
+django/contrib/humanize/locale/br/LC_MESSAGES/django.mo,sha256=V_tPVAyQzVdDwWPNlVGWmlVJjmVZfbh35alkwsFlCNU,5850
+django/contrib/humanize/locale/br/LC_MESSAGES/django.po,sha256=BcAqEV2JpF0hiCQDttIMblp9xbB7zoHsmj7fJFV632k,12245
+django/contrib/humanize/locale/bs/LC_MESSAGES/django.mo,sha256=1-RNRHPgZR_9UyiEn9Djp4mggP3fywKZho45E1nGMjM,1416
+django/contrib/humanize/locale/bs/LC_MESSAGES/django.po,sha256=M017Iu3hyXmINZkhCmn2he-FB8rQ7rXN0KRkWgrp7LI,5498
+django/contrib/humanize/locale/ca/LC_MESSAGES/django.mo,sha256=WDvXis2Y1ivSq6NdJgddO_WKbz8w5MpVpkT4sq-pWXI,4270
+django/contrib/humanize/locale/ca/LC_MESSAGES/django.po,sha256=AD3h2guGADdp1f9EcbP1vc1lmfDOL8-1qQfwvXa6I04,7731
+django/contrib/humanize/locale/ckb/LC_MESSAGES/django.mo,sha256=Mqv3kRZrOjWtTstmtOEqIJsi3vevf_hZUfYEetGxO7w,5021
+django/contrib/humanize/locale/ckb/LC_MESSAGES/django.po,sha256=q_7p7pEyV_NTw9eBvcztKlSFW7ykl0CIsNnA9g5oy20,8317
+django/contrib/humanize/locale/cs/LC_MESSAGES/django.mo,sha256=VFyZcn19aQUXhVyh2zo2g3PAuzOO38Kx9fMFOCCxzMc,5479
+django/contrib/humanize/locale/cs/LC_MESSAGES/django.po,sha256=mq3LagwA9hyWOGy76M9n_rD4p3wuVk6oQsneB9CF99w,9527
+django/contrib/humanize/locale/cy/LC_MESSAGES/django.mo,sha256=VjJiaUUhvX9tjOEe6x2Bdp7scvZirVcUsA4-iE2-ElQ,5241
+django/contrib/humanize/locale/cy/LC_MESSAGES/django.po,sha256=sylmceSq-NPvtr_FjklQXoBAfueKu7hrjEpMAsVbQC4,7813
+django/contrib/humanize/locale/da/LC_MESSAGES/django.mo,sha256=vfDHopmWFAomwqmmCX3wfmX870-zzVbgUFC6I77n9tE,4316
+django/contrib/humanize/locale/da/LC_MESSAGES/django.po,sha256=v7Al6UOkbYB1p7m8kOe-pPRIAoyWemoyg_Pm9bD5Ldc,7762
+django/contrib/humanize/locale/de/LC_MESSAGES/django.mo,sha256=aOUax9csInbXnjAJc3jq4dcW_9H-6ueVI-TtKz2b9q0,4364
+django/contrib/humanize/locale/de/LC_MESSAGES/django.po,sha256=gW3OfOfoVMvpVudwghKCYztkLrCIPbbcriZjBNnRyGo,7753
+django/contrib/humanize/locale/dsb/LC_MESSAGES/django.mo,sha256=OVKcuW9ZXosNvP_3A98WsIIk_Jl6U_kv3zOx4pvwh-g,5588
+django/contrib/humanize/locale/dsb/LC_MESSAGES/django.po,sha256=VimcsmobK3VXTbbTasg6osWDPOIZ555uimbUoUfNco4,9557
+django/contrib/humanize/locale/el/LC_MESSAGES/django.mo,sha256=o-yjhpzyGRbbdMzwUcG_dBP_FMEMZevm7Wz1p4Wd-pg,6740
+django/contrib/humanize/locale/el/LC_MESSAGES/django.po,sha256=UbD5QEw_-JNoNETaOyDfSReirkRsHnlHeSsZF5hOSkI,10658
+django/contrib/humanize/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/humanize/locale/en/LC_MESSAGES/django.po,sha256=PKUuSyK8VzVdyyCpOXAffSBK7mFSiGuumzMmttS5yfM,9057
+django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.mo,sha256=QFf4EgAsGprbFetnwogmj8vDV7SfGq1E3vhL9D8xTTM,918
+django/contrib/humanize/locale/en_AU/LC_MESSAGES/django.po,sha256=Bnfesr1_T9sa31qkKOMunwKKXbnFzZJhzV8rYC_pdSE,6532
+django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.mo,sha256=mkx192XQM3tt1xYG8EOacMfa-BvgzYCbSsJQsWZGeAo,3461
+django/contrib/humanize/locale/en_GB/LC_MESSAGES/django.po,sha256=MArKzXxY1104jxaq3kvDZs2WzOGYxicfJxFKsLzFavw,5801
+django/contrib/humanize/locale/eo/LC_MESSAGES/django.mo,sha256=b47HphXBi0cax_reCZiD3xIedavRHcH2iRG8pcwqb54,5386
+django/contrib/humanize/locale/eo/LC_MESSAGES/django.po,sha256=oN1YqOZgxKY3L1a1liluhM6X5YA5bawg91mHF_Vfqx8,9095
+django/contrib/humanize/locale/es/LC_MESSAGES/django.mo,sha256=z5ZCmAG4jGYleEE6pESMXihlESRQPkTEo2vIedXdjjI,5005
+django/contrib/humanize/locale/es/LC_MESSAGES/django.po,sha256=WwykwsBM_Q_xtA2vllIbcFSO7eUB72r56AG4ITwM5VM,8959
+django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.mo,sha256=-btiXH3B5M1qkAsW9D5I742Gt9GcJs5VC8ZhJ_DKkGY,4425
+django/contrib/humanize/locale/es_AR/LC_MESSAGES/django.po,sha256=UsiuRj-eq-Vl41wNZGw9XijCMEmcXhcGrMTPWgZn4LA,7858
+django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.mo,sha256=2GhQNtNOjK5mTov5RvnuJFTYbdoGBkDGLxzvJ8Vsrfs,4203
+django/contrib/humanize/locale/es_CO/LC_MESSAGES/django.po,sha256=JBf2fHO8jWi6dFdgZhstKXwyot_qT3iJBixQZc3l330,6326
+django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.mo,sha256=82DL2ztdq10X5RIceshK1nO99DW5628ZIjaN8Xzp9ok,3939
+django/contrib/humanize/locale/es_MX/LC_MESSAGES/django.po,sha256=-O7AQluA5Kce9-bd04GN4tfQKoCxb8Sa7EZR6TZBCdM,6032
+django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.mo,sha256=cJECzKpD99RRIpVFKQW65x0Nvpzrm5Fuhfi-nxOWmkM,942
+django/contrib/humanize/locale/es_VE/LC_MESSAGES/django.po,sha256=tDdYtvRILgeDMgZqKHSebe7Z5ZgI1bZhDdvGVtj_anM,4832
+django/contrib/humanize/locale/et/LC_MESSAGES/django.mo,sha256=_vLDxD-e-pBY7vs6gNkhFZNGYu_dAeETVMKGsjjWOHg,4406
+django/contrib/humanize/locale/et/LC_MESSAGES/django.po,sha256=u0tSkVYckwXUv1tVfe1ODdZ8tJ2wUkS0Vv8pakJ8eBM,7915
+django/contrib/humanize/locale/eu/LC_MESSAGES/django.mo,sha256=rz3Lz209GneozN4v_19qTGysOL55x7jK2uoB2YsKSMQ,4315
+django/contrib/humanize/locale/eu/LC_MESSAGES/django.po,sha256=lWOx7rpaj2U7czrZmdxVo3kB2aGt-2GDyWO0NLvP-A0,7760
+django/contrib/humanize/locale/fa/LC_MESSAGES/django.mo,sha256=N32l1DsPALoSGe9GtJ5baIo0XUDm8U09JhcHr0lXtw4,4656
+django/contrib/humanize/locale/fa/LC_MESSAGES/django.po,sha256=YsYRnmvABepSAOgEj6dRvdY_jYZqJb0_dbQ_6daiJAQ,8228
+django/contrib/humanize/locale/fi/LC_MESSAGES/django.mo,sha256=FJfyLFkz-oAz9e15e1aQUct7CJ2EJqSkZKh_ztDxtic,4425
+django/contrib/humanize/locale/fi/LC_MESSAGES/django.po,sha256=j5Z5t9zX1kePdM_Es1hu9AKOpOrijVWTsS2t19CIiaE,7807
+django/contrib/humanize/locale/fr/LC_MESSAGES/django.mo,sha256=pHHD7DV36bC86CKXWUpWUp3NtKuqWu9_YXU04sE6ib4,5125
+django/contrib/humanize/locale/fr/LC_MESSAGES/django.po,sha256=SyN1vUt8zDG-iSTDR4OH1B_CbvKMM2YaMJ2_s-FEyog,8812
+django/contrib/humanize/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/humanize/locale/fy/LC_MESSAGES/django.po,sha256=pPvcGgBWiZwQ5yh30OlYs-YZUd_XsFro71T9wErVv0M,4732
+django/contrib/humanize/locale/ga/LC_MESSAGES/django.mo,sha256=8V-8BJdubpBPT_AMHHdifgPangJw_TY3WtSQxaGNCGw,6346
+django/contrib/humanize/locale/ga/LC_MESSAGES/django.po,sha256=Y_6wRPWasABq-6B3WjzEObSk860fExiQ_OVbh8i1j44,10784
+django/contrib/humanize/locale/gd/LC_MESSAGES/django.mo,sha256=wHsBVluXm4DW7iWxGHMHexqG9ovXEvgcaXvsmvkNHSE,5838
+django/contrib/humanize/locale/gd/LC_MESSAGES/django.po,sha256=CmmpKK7me-Ujitgx2IVkOcJyZOvie6XEBS7wCY4xZQ0,9802
+django/contrib/humanize/locale/gl/LC_MESSAGES/django.mo,sha256=TB4nkaMKK95XdNIRUmHvWTSL7dOOHpn7QWb6sHcmiw8,4350
+django/contrib/humanize/locale/gl/LC_MESSAGES/django.po,sha256=oCSjejViYeg5CjVarZsOpVhmYTbjE9bZ8SqvKu3MDOY,7782
+django/contrib/humanize/locale/he/LC_MESSAGES/django.mo,sha256=phFZMDohKT86DUtiAlnZslPFwSmpcpxTgZaXb8pGohc,5875
+django/contrib/humanize/locale/he/LC_MESSAGES/django.po,sha256=xhEZYcK-fg_mHMyGCEZXEwbd6FvutaGvkDyHTET-sic,9970
+django/contrib/humanize/locale/hi/LC_MESSAGES/django.mo,sha256=qrzm-6vXIUsxA7nOxa-210-6iO-3BPBj67vKfhTOPrY,4131
+django/contrib/humanize/locale/hi/LC_MESSAGES/django.po,sha256=BrypbKaQGOyY_Gl1-aHXiBVlRqrbSjGfZ2OK8omj_9M,6527
+django/contrib/humanize/locale/hr/LC_MESSAGES/django.mo,sha256=29XTvFJHex31hbu2qsOfl5kOusz-zls9eqlxtvw_H0s,1274
+django/contrib/humanize/locale/hr/LC_MESSAGES/django.po,sha256=OuEH4fJE6Fk-s0BMqoxxdlUAtndvvKK7N8Iy-9BP3qA,5424
+django/contrib/humanize/locale/hsb/LC_MESSAGES/django.mo,sha256=a1DqdiuRfFSfSrD8IvzQmZdzE0dhkxDChFddrmt3fjA,5679
+django/contrib/humanize/locale/hsb/LC_MESSAGES/django.po,sha256=V5aRblcqKii4RXSQO87lyoQwwvxL59T3m4-KOBTx4bc,9648
+django/contrib/humanize/locale/hu/LC_MESSAGES/django.mo,sha256=7ZMxGa5FaUdjRtbawYzwwhWIroON8NNXknQ3frKUabw,4313
+django/contrib/humanize/locale/hu/LC_MESSAGES/django.po,sha256=5yWfXwvJQQuDoENkiytuKXFjsNW-lS2-EFThVnYWHbI,7672
+django/contrib/humanize/locale/hy/LC_MESSAGES/django.mo,sha256=YN4XSM-NGXNJb2R0SMwC8Zk6r7F6LOfFvRgvc4fUNCM,3810
+django/contrib/humanize/locale/hy/LC_MESSAGES/django.po,sha256=JZZibNtKEOepsf5xf495lmCBk8jji5RUJETZlQpxrMo,7597
+django/contrib/humanize/locale/ia/LC_MESSAGES/django.mo,sha256=d0m-FddFnKp08fQYQSC9Wr6M4THVU7ibt3zkIpx_Y_A,4167
+django/contrib/humanize/locale/ia/LC_MESSAGES/django.po,sha256=qX6fAZyn54hmtTU62oJcHF8p4QcYnoO2ZNczVjvjOeE,6067
+django/contrib/humanize/locale/id/LC_MESSAGES/django.mo,sha256=AdUmhfkQOV9Le4jXQyQSyd5f2GqwNt-oqnJV-WVELVw,3885
+django/contrib/humanize/locale/id/LC_MESSAGES/django.po,sha256=lMnTtM27j1EWg1i9d7NzAeueo7mRztGVfNOXtXdZVjw,7021
+django/contrib/humanize/locale/io/LC_MESSAGES/django.mo,sha256=nMu5JhIy8Fjie0g5bT8-h42YElCiS00b4h8ej_Ie-w0,464
+django/contrib/humanize/locale/io/LC_MESSAGES/django.po,sha256=RUs8JkpT0toKOLwdv1oCbcBP298EOk02dkdNSJiC-_A,4720
+django/contrib/humanize/locale/is/LC_MESSAGES/django.mo,sha256=D6ElUYj8rODRsZwlJlH0QyBSM44sVmuBCNoEkwPVxko,3805
+django/contrib/humanize/locale/is/LC_MESSAGES/django.po,sha256=1VddvtkhsK_5wmpYIqEFqFOo-NxIBnL9wwW74Tw9pbw,8863
+django/contrib/humanize/locale/it/LC_MESSAGES/django.mo,sha256=Zw8reudMUlPGC3eQ-CpsGYHX-FtNrAc5SxgTdmIrUC0,5374
+django/contrib/humanize/locale/it/LC_MESSAGES/django.po,sha256=wJzT-2ygufGLMIULd7afg1sZLQKnwQ55NZ2eAnwIY8M,9420
+django/contrib/humanize/locale/ja/LC_MESSAGES/django.mo,sha256=x8AvfUPBBJkGtE0jvAP4tLeZEByuyo2H4V_UuLoCEmw,3907
+django/contrib/humanize/locale/ja/LC_MESSAGES/django.po,sha256=G2yTPZq6DxgzPV5uJ6zvMK4o3aiuLWbl4vXPH7ylUhc,6919
+django/contrib/humanize/locale/ka/LC_MESSAGES/django.mo,sha256=UeUbonYTkv1d2ljC0Qj8ZHw-59zHu83fuMvnME9Fkmw,4878
+django/contrib/humanize/locale/ka/LC_MESSAGES/django.po,sha256=-eAMexwjm8nSB4ARJU3f811UZnuatHKIFf8FevpJEpo,9875
+django/contrib/humanize/locale/kk/LC_MESSAGES/django.mo,sha256=jujbUM0jOpt3Mw8zN4LSIIkxCJ0ihk_24vR0bXoux78,2113
+django/contrib/humanize/locale/kk/LC_MESSAGES/django.po,sha256=hjZg_NRE9xMA5uEa2mVSv1Hr4rv8inG9es1Yq7uy9Zc,8283
+django/contrib/humanize/locale/km/LC_MESSAGES/django.mo,sha256=mfXs9p8VokORs6JqIfaSSnQshZEhS90rRFhOIHjW7CI,459
+django/contrib/humanize/locale/km/LC_MESSAGES/django.po,sha256=JQBEHtcy-hrV_GVWIjvUJyOf3dZ5jUzzN8DUTAbHKUg,4351
+django/contrib/humanize/locale/kn/LC_MESSAGES/django.mo,sha256=Oq3DIPjgCqkn8VZMb6ael7T8fQ7LnWobPPAZKQSFHl4,461
+django/contrib/humanize/locale/kn/LC_MESSAGES/django.po,sha256=CAJ0etMlQF3voPYrxIRr5ChAwUYO7wI42n5kjpIEVjA,4359
+django/contrib/humanize/locale/ko/LC_MESSAGES/django.mo,sha256=mWmQEoe0MNVn3sNqsz6CBc826x3KIpOL53ziv6Ekf7c,3891
+django/contrib/humanize/locale/ko/LC_MESSAGES/django.po,sha256=UUxIUYM332DOZinJrqOUtQvHfCCHkodFhENDVWj3dpk,7003
+django/contrib/humanize/locale/ky/LC_MESSAGES/django.mo,sha256=jDu1bVgJMDpaZ0tw9-wdkorvZxDdRzcuzdeC_Ot7rUs,4177
+django/contrib/humanize/locale/ky/LC_MESSAGES/django.po,sha256=MEHbKMLIiFEG7BlxsNVF60viXSnlk5iqlFCH3hgamH0,7157
+django/contrib/humanize/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/humanize/locale/lb/LC_MESSAGES/django.po,sha256=_y0QFS5Kzx6uhwOnzmoHtCrbufMrhaTLsHD0LfMqtcM,4730
+django/contrib/humanize/locale/lt/LC_MESSAGES/django.mo,sha256=O0C-tPhxWNW5J4tCMlB7c7shVjNO6dmTURtIpTVO9uc,7333
+django/contrib/humanize/locale/lt/LC_MESSAGES/django.po,sha256=M5LlRxC1KWh1-3fwS93UqTijFuyRENmQJXfpxySSKik,12086
+django/contrib/humanize/locale/lv/LC_MESSAGES/django.mo,sha256=O_tEmkDtPQeVaIoW5ogfUPvRUQCblwfMY9SqRJm13rE,5029
+django/contrib/humanize/locale/lv/LC_MESSAGES/django.po,sha256=Hj6LObvG9vz9cA7-qRhom2V_iFX2OcvmI3k7plG8kjk,8890
+django/contrib/humanize/locale/mk/LC_MESSAGES/django.mo,sha256=htUgd6rcaeRPDf6UrEb18onz-Ayltw9LTvWRgEkXm08,4761
+django/contrib/humanize/locale/mk/LC_MESSAGES/django.po,sha256=Wl9Rt8j8WA_0jyxKCswIovSiCQD-ZWFYXbhFsCUKIWo,6665
+django/contrib/humanize/locale/ml/LC_MESSAGES/django.mo,sha256=5As-FXkEJIYetmV9dMtzLtsRPTOm1oUgyx-oeTH_guY,4655
+django/contrib/humanize/locale/ml/LC_MESSAGES/django.po,sha256=I9_Ln0C1nSj188_Zdq9Vy6lC8aLzg_YdNc5gy9hNGjE,10065
+django/contrib/humanize/locale/mn/LC_MESSAGES/django.mo,sha256=MSw9wpCRQAX7lLWEW-Mamk_bR5R8lE_WqcD1G2mKbxI,4863
+django/contrib/humanize/locale/mn/LC_MESSAGES/django.po,sha256=xA4gODU33-hK6BXdqUun7qfjNuv6Dzq63FPVSQImfK4,8241
+django/contrib/humanize/locale/mr/LC_MESSAGES/django.mo,sha256=sJAjSaUecl5hdetpBm-rCjVrkWxNhq3IFsE1MEYmq7c,1506
+django/contrib/humanize/locale/mr/LC_MESSAGES/django.po,sha256=lHmcv7LnyXWBdh_WRsL4GPUybIMLRlIoJlHBM3_3EWA,6693
+django/contrib/humanize/locale/ms/LC_MESSAGES/django.mo,sha256=Bcictup-1bGKm0FIa3CeGNvrHg8VyxsqUHzWI7UMscs,3839
+django/contrib/humanize/locale/ms/LC_MESSAGES/django.po,sha256=UQEUC2iZxhtrWim96GaEK1VAKxAC0fTQIghg4Zx4R3Q,6774
+django/contrib/humanize/locale/my/LC_MESSAGES/django.mo,sha256=55CWHz34sy9k6TfOeVI9GYvE9GRa3pjSRE6DSPk9uQ8,3479
+django/contrib/humanize/locale/my/LC_MESSAGES/django.po,sha256=jCiDhSqARfqKcMLEHJd-Xe6zo3Uc9QpiCh3BbAAA5UE,5433
+django/contrib/humanize/locale/nb/LC_MESSAGES/django.mo,sha256=957mOf_wFBOTjpcevsRz5tQ6IQ4PJnZZfJUETUgF23s,4318
+django/contrib/humanize/locale/nb/LC_MESSAGES/django.po,sha256=G_4pAxT3QZhC-wmWKIhEkFf0IRBn6gKRQZvx0spqjuk,7619
+django/contrib/humanize/locale/ne/LC_MESSAGES/django.mo,sha256=YFT2D-yEkUdJBO2GfuUowau1OZQA5mS86CZvMzH38Rk,3590
+django/contrib/humanize/locale/ne/LC_MESSAGES/django.po,sha256=SN7yH65hthOHohnyEmQUjXusRTDRjxWJG_kuv5g2Enk,9038
+django/contrib/humanize/locale/nl/LC_MESSAGES/django.mo,sha256=RxwgVgdHvfFirimjPrpDhzqmI1Z9soDC--raoAzgBkw,4311
+django/contrib/humanize/locale/nl/LC_MESSAGES/django.po,sha256=M7dVQho17p71Ud6imsQLGMiBisLrVNEZNP4ufpkEJnM,7872
+django/contrib/humanize/locale/nn/LC_MESSAGES/django.mo,sha256=wyJDAGJWgvyBYZ_-UQnBQ84-Jelk5forKfk7hMFDGpQ,4336
+django/contrib/humanize/locale/nn/LC_MESSAGES/django.po,sha256=zuKg53XCX-C6Asc9M04BKZVVw1X6u5p5hvOXxc0AXnM,7651
+django/contrib/humanize/locale/os/LC_MESSAGES/django.mo,sha256=BwS3Mj7z_Fg5s7Qm-bGLVhzYLZ8nPgXoB0gXLnrMGWc,3902
+django/contrib/humanize/locale/os/LC_MESSAGES/django.po,sha256=CGrxyL5l-5HexruOc7QDyRbum7piADf-nY8zjDP9wVM,6212
+django/contrib/humanize/locale/pa/LC_MESSAGES/django.mo,sha256=TH1GkAhaVVLk2jrcqAmdxZprWyikAX6qMP0eIlr2tWM,1569
+django/contrib/humanize/locale/pa/LC_MESSAGES/django.po,sha256=_7oP0Hn-IU7IPLv_Qxg_wstLEdhgWNBBTCWYwSycMb0,5200
+django/contrib/humanize/locale/pl/LC_MESSAGES/django.mo,sha256=0QheMbF3Y0Q_sxZlN2wAYJRQyK3K_uq6ttVr7wCc33w,5596
+django/contrib/humanize/locale/pl/LC_MESSAGES/django.po,sha256=6wX50O68aIyKiP6CcyLMXZ3xuUnAzasFPIg_8deJQBY,9807
+django/contrib/humanize/locale/pt/LC_MESSAGES/django.mo,sha256=dfK6kUOMLsT0VWhxqtqlE85iL8TzK-k4uZxlejuVjQw,5006
+django/contrib/humanize/locale/pt/LC_MESSAGES/django.po,sha256=QYAX1D7Rma9BCdels---awn1hRDTnVEuYfABJ1_64Ik,8788
+django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.mo,sha256=F5-AD4Fohf9wDyP_mqSJHvcKqIKIJsaxGuXGiHYGLHQ,5092
+django/contrib/humanize/locale/pt_BR/LC_MESSAGES/django.po,sha256=O1eVw8R8hL0N_XtTp4sdZbc5MxUNdxfGPzCT3U7QcxM,9089
+django/contrib/humanize/locale/ro/LC_MESSAGES/django.mo,sha256=vP6o72bsgKPsbKGwH0PU8Xyz9BnQ_sPWT3EANLT2wRk,6188
+django/contrib/humanize/locale/ro/LC_MESSAGES/django.po,sha256=JZiW6Y9P5JdQe4vgCvcFg35kFa8bSX0lU_2zdeudQP0,10575
+django/contrib/humanize/locale/ru/LC_MESSAGES/django.mo,sha256=tVtMvbDmHtoXFav2cXzhHpHmT-4-593Vo7kE5sd-Agc,6733
+django/contrib/humanize/locale/ru/LC_MESSAGES/django.po,sha256=0OWESEN33yMIcRUaX_oSQUuDidhbzgKpdivwAS7kNgs,11068
+django/contrib/humanize/locale/sk/LC_MESSAGES/django.mo,sha256=6l7T4rvVb8dPl0-6vwrq5K1QqJ06IdFKxEl4EGzN8Ns,5541
+django/contrib/humanize/locale/sk/LC_MESSAGES/django.po,sha256=Edsza_V5MJD_HadigUZWZoFLjl8556KFW9tbuHVHL3g,9657
+django/contrib/humanize/locale/sl/LC_MESSAGES/django.mo,sha256=yonGwvQKyqpZ_NLTpynDdS6q4yg3eafL1K5MFmnGw7o,4967
+django/contrib/humanize/locale/sl/LC_MESSAGES/django.po,sha256=-nzc9Rk9f3U_Rpze_fdJrKR-_CglPJ0_GryNUDD80jI,9580
+django/contrib/humanize/locale/sq/LC_MESSAGES/django.mo,sha256=j0AZBAudcMsxRAcq3MFdx2HY9aMCn6LJ7h4RR6cO__4,4355
+django/contrib/humanize/locale/sq/LC_MESSAGES/django.po,sha256=jjC3FgmIHFHHg0MdcM4wRbNkLVMFmXEAZRS_t6JHYpQ,7763
+django/contrib/humanize/locale/sr/LC_MESSAGES/django.mo,sha256=4Ec4EI_UmeBl6n8PhEikblh7YfTNIsll9s7aXUEpe7w,5723
+django/contrib/humanize/locale/sr/LC_MESSAGES/django.po,sha256=-Ru588vD_KCkEIo7AHJPAoQ04qVXubiZQSCoBwayi9U,9373
+django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=JjRdhD131w1i1HKNOnvU-Op9VCEIDlgvsiXT5RkSs4U,4935
+django/contrib/humanize/locale/sr_Latn/LC_MESSAGES/django.po,sha256=Rn4v9V4Jy57rB69JyGt_QVHvvnE7-4s5KXeSRYdsGTc,11241
+django/contrib/humanize/locale/sv/LC_MESSAGES/django.mo,sha256=7OABdxvdZvKB9j1o99UiecoTXaVGn3XmXnU5xCNov8s,4333
+django/contrib/humanize/locale/sv/LC_MESSAGES/django.po,sha256=71tFrQzwtwzYfeC2BG0v8dZNkSEMbM-tAC5_z2AElLM,7876
+django/contrib/humanize/locale/sw/LC_MESSAGES/django.mo,sha256=cxjSUqegq1JX08xIAUgqq9ByP-HuqaXuxWM8Y2gHdB4,4146
+django/contrib/humanize/locale/sw/LC_MESSAGES/django.po,sha256=bPYrLJ2yY_lZ3y1K-RguNi-qrxq2r-GLlsz1gZcm2A8,6031
+django/contrib/humanize/locale/ta/LC_MESSAGES/django.mo,sha256=1X2vH0iZOwM0uYX9BccJUXqK-rOuhcu5isRzMpnjh2o,466
+django/contrib/humanize/locale/ta/LC_MESSAGES/django.po,sha256=8x1lMzq2KOJveX92ADSuqNmXGIEYf7fZ1JfIJPysS04,4722
+django/contrib/humanize/locale/te/LC_MESSAGES/django.mo,sha256=iKd4dW9tan8xPxgaSoenIGp1qQpvSHHXUw45Tj2ATKQ,1327
+django/contrib/humanize/locale/te/LC_MESSAGES/django.po,sha256=FQdjWKMsiv-qehYZ4AtN9iKRf8Rifzcm5TZzMkQVfQI,5103
+django/contrib/humanize/locale/tg/LC_MESSAGES/django.mo,sha256=1Fiqat0CZSyExRXRjRCBS0AFzwy0q1Iba-2RVnrXoZQ,1580
+django/contrib/humanize/locale/tg/LC_MESSAGES/django.po,sha256=j2iczgQDbqzpthKAAlMt1Jk7gprYLqZ1Ya0ASr2SgD0,7852
+django/contrib/humanize/locale/th/LC_MESSAGES/django.mo,sha256=jT7wGhYWP9HHwOvtr2rNPStiOgZW-rGMcO36w1U8Y4c,3709
+django/contrib/humanize/locale/th/LC_MESSAGES/django.po,sha256=ZO3_wU7z0VASS5E8RSLEtmTveMDjJ0O8QTynb2-jjt0,8318
+django/contrib/humanize/locale/tk/LC_MESSAGES/django.mo,sha256=cI2Ukp5kVTsUookoxyDD9gZKdxh4YezfRWYFBL7KuRU,4419
+django/contrib/humanize/locale/tk/LC_MESSAGES/django.po,sha256=6Qaxa03R4loH0FWQ6PCytT3Yz3LZt7UGTd01WVnHOIk,7675
+django/contrib/humanize/locale/tr/LC_MESSAGES/django.mo,sha256=D4ChMLE1Uz921NIF_Oe1vNkYAGfRpQuC8xANFwtlygE,4319
+django/contrib/humanize/locale/tr/LC_MESSAGES/django.po,sha256=4PjW65seHF9SsWnLv47JhgYPt0Gvzr-7_Ejech3d3ak,7754
+django/contrib/humanize/locale/tt/LC_MESSAGES/django.mo,sha256=z8VgtMhlfyDo7bERDfrDmcYV5aqOeBY7LDgqa5DRxDM,3243
+django/contrib/humanize/locale/tt/LC_MESSAGES/django.po,sha256=j_tRbg1hzLBFAmPQt0HoN-_WzWFtA07PloCkqhvNkcY,5201
+django/contrib/humanize/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/humanize/locale/udm/LC_MESSAGES/django.po,sha256=AR55jQHmMrbA6RyHGOtqdvUtTFlxWnqvfMy8vZK25Bo,4354
+django/contrib/humanize/locale/ug/LC_MESSAGES/django.mo,sha256=_GtRGNtdwZ6lU2gZc5jN9nSDB15bLBMYdhiwHlKxOOc,4883
+django/contrib/humanize/locale/ug/LC_MESSAGES/django.po,sha256=x9DJRBObVq8C3orGfj737v2gCHcpqaWUXMEeCMkumco,8156
+django/contrib/humanize/locale/uk/LC_MESSAGES/django.mo,sha256=wQOJu-zKyuCazul-elFLZc-iKw2Zea7TGb90OVGZYkQ,6991
+django/contrib/humanize/locale/uk/LC_MESSAGES/django.po,sha256=hxEufGt-NOgSFc5T9OzxCibcfqkhWD7zxhQljoUQssQ,11249
+django/contrib/humanize/locale/ur/LC_MESSAGES/django.mo,sha256=MF9uX26-4FFIz-QpDUbUHUNLQ1APaMLQmISMIaPsOBE,1347
+django/contrib/humanize/locale/ur/LC_MESSAGES/django.po,sha256=D5UhcPEcQ16fsBEdkk_zmpjIF6f0gEv0P86z_pK_1eA,5015
+django/contrib/humanize/locale/uz/LC_MESSAGES/django.mo,sha256=HDah_1qqUz5m_ABBVIEML3WMR2xyomFckX82i6b3n4k,1915
+django/contrib/humanize/locale/uz/LC_MESSAGES/django.po,sha256=Ql3GZOhuoVgS0xHEzxjyYkOWQUyi_jiizfAXBp2Y4uw,7296
+django/contrib/humanize/locale/vi/LC_MESSAGES/django.mo,sha256=ZUK_Na0vnfdhjo0MgnBWnGFU34sxcMf_h0MeyuysKG8,3646
+django/contrib/humanize/locale/vi/LC_MESSAGES/django.po,sha256=DzRpXObt9yP5RK_slWruaIhnVI0-JXux2hn_uGsVZiE,5235
+django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=YgeAjXHMV1rXNNIrlDu_haxnKB0hxU5twJ86LMR10k8,3844
+django/contrib/humanize/locale/zh_Hans/LC_MESSAGES/django.po,sha256=JGfRVW_5UqwyI2mK_WRK8xDPzwBAO2q_mGsGzf89a88,7122
+django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=JQmImGUND9MONKqqLSCvvbbIT_TigIU6h-twN1qlfJc,3737
+django/contrib/humanize/locale/zh_Hant/LC_MESSAGES/django.po,sha256=u_JB8_pFJofUoiGtcGh1xemLouLePvHua5J_npnJ_Q8,6826
+django/contrib/humanize/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/humanize/templatetags/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/humanize/templatetags/__pycache__/humanize.cpython-311.pyc,,
+django/contrib/humanize/templatetags/humanize.py,sha256=8akMV7BQKkleh-7LhBVsKDrs-_4_SOQNOy-k_MBURg4,12681
+django/contrib/messages/__init__.py,sha256=_5b6kMxWt0TqW5ze5vZ-iqYEQfaQiAl28x2q9KRaMz4,171
+django/contrib/messages/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/messages/__pycache__/api.cpython-311.pyc,,
+django/contrib/messages/__pycache__/apps.cpython-311.pyc,,
+django/contrib/messages/__pycache__/constants.cpython-311.pyc,,
+django/contrib/messages/__pycache__/context_processors.cpython-311.pyc,,
+django/contrib/messages/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/messages/__pycache__/test.cpython-311.pyc,,
+django/contrib/messages/__pycache__/utils.cpython-311.pyc,,
+django/contrib/messages/__pycache__/views.cpython-311.pyc,,
+django/contrib/messages/api.py,sha256=3DbnVG5oOBdg499clMU8l2hxCXMXB6S03-HCKVuBXjA,3250
+django/contrib/messages/apps.py,sha256=W_nya0lzXYBew83hqP6I8gg6XnaRlh-gmN-pYpDGN84,611
+django/contrib/messages/constants.py,sha256=JD4TpaR4C5G0oxIh4BmrWiVmCACv7rnVgZSpJ8Rmzeg,312
+django/contrib/messages/context_processors.py,sha256=xMrgYeX6AcT_WwS9AYKNDDstbvAwE7_u1ssDVLN_bbg,354
+django/contrib/messages/middleware.py,sha256=2mxncCpJVUgLtjouUGSVl39mTF-QskQpWo2jCOOqV8A,986
+django/contrib/messages/storage/__init__.py,sha256=gXDHbQ9KgQdfhYOla9Qj59_SlE9WURQiKzIA0cFH0DQ,392
+django/contrib/messages/storage/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/messages/storage/__pycache__/base.cpython-311.pyc,,
+django/contrib/messages/storage/__pycache__/cookie.cpython-311.pyc,,
+django/contrib/messages/storage/__pycache__/fallback.cpython-311.pyc,,
+django/contrib/messages/storage/__pycache__/session.cpython-311.pyc,,
+django/contrib/messages/storage/base.py,sha256=T-bcy6HdwRbEKNIuO5fEJZ1EUj3rTHWXRg1oxqRahGc,6082
+django/contrib/messages/storage/cookie.py,sha256=6r-z_MyYImgEC5LPvjOdp64xwkiV_ib97Sg4N4eXjxY,8678
+django/contrib/messages/storage/fallback.py,sha256=K5CrVJfUDakMjIcqSRt1WZd_1Xco1Bc2AQM3O3ld9aA,2093
+django/contrib/messages/storage/session.py,sha256=kvdVosbBAvI3XBA0G4AFKf0vxLleyzlwbGEgl60DfMQ,1764
+django/contrib/messages/test.py,sha256=zH9t6VwixXBDpaVscenCN94iDWIgs8pZ_Ck1GWUhWv0,421
+django/contrib/messages/utils.py,sha256=_oItQILchdwdXH08SIyZ-DBdYi7q_uobHQajWwmAeUw,256
+django/contrib/messages/views.py,sha256=I_7C4yr-YLkhTEWx3iuhixG7NrKuyuSDG_CVg-EYRD8,524
+django/contrib/postgres/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/postgres/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/apps.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/constraints.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/expressions.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/functions.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/indexes.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/lookups.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/operations.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/search.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/serializers.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/signals.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/utils.cpython-311.pyc,,
+django/contrib/postgres/__pycache__/validators.cpython-311.pyc,,
+django/contrib/postgres/aggregates/__init__.py,sha256=QCznqMKqPbpraxSi1Y8-B7_MYlL42F1kEWZ1HeLgTKs,65
+django/contrib/postgres/aggregates/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/postgres/aggregates/__pycache__/general.cpython-311.pyc,,
+django/contrib/postgres/aggregates/__pycache__/mixins.cpython-311.pyc,,
+django/contrib/postgres/aggregates/__pycache__/statistics.cpython-311.pyc,,
+django/contrib/postgres/aggregates/general.py,sha256=nOI--CyO5sHBswRZKn8qCIuM3sX6uLLbsfmhkchNVEM,1496
+django/contrib/postgres/aggregates/mixins.py,sha256=UUErndo7Voc_Ykbcc7dxpiLDVtqtZo4HXILYGrcNJOo,2108
+django/contrib/postgres/aggregates/statistics.py,sha256=xSWk5Z5ZVpM2LSaMgP97pxcijOnPHiPATe3X45poXCI,1511
+django/contrib/postgres/apps.py,sha256=sfjoL-2VJrFzrv0CC3S4WGWZblzR_4BwFDm9bEHs8B0,3692
+django/contrib/postgres/constraints.py,sha256=YOuuC5LokNSs1F_lhNAiLLE1ws_ePysjyN-jJCCmINQ,9086
+django/contrib/postgres/expressions.py,sha256=fo5YASHJtIjexadqskuhYYk4WutofxzymYsivWWJS84,405
+django/contrib/postgres/fields/__init__.py,sha256=Xo8wuWPwVNOkKY-EwV9U1zusQ2DjMXXtL7_8R_xAi5s,148
+django/contrib/postgres/fields/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/array.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/citext.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/hstore.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/jsonb.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/ranges.cpython-311.pyc,,
+django/contrib/postgres/fields/__pycache__/utils.cpython-311.pyc,,
+django/contrib/postgres/fields/array.py,sha256=Khl-BCCL25RQXGvi4gIHsfivP-XVWb6LhYJC0IEacpw,12630
+django/contrib/postgres/fields/citext.py,sha256=ytV2yAIwGvElHTAfH4BiLV-2DZ5otff8SmwmcqF2MVE,1363
+django/contrib/postgres/fields/hstore.py,sha256=LRM5aRhoPy5Ru8YMVUh84J17xoIcQ8Zc3kHVXMkSfSM,3296
+django/contrib/postgres/fields/jsonb.py,sha256=ncMGT6WY70lCbcmhwtu2bjRmfDMUIvCr76foUv7tqv0,406
+django/contrib/postgres/fields/ranges.py,sha256=IbjAQC7IdWuISqHdBXrraiOGPzUP_4pHHcnL8VuYZRs,11417
+django/contrib/postgres/fields/utils.py,sha256=TV-Aj9VpBb13I2iuziSDURttZtz355XakxXnFwvtGio,95
+django/contrib/postgres/forms/__init__.py,sha256=NjENn2-C6BcXH4T8YeC0K2AbDk8MVT8tparL3Q4OF6g,89
+django/contrib/postgres/forms/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/postgres/forms/__pycache__/array.cpython-311.pyc,,
+django/contrib/postgres/forms/__pycache__/hstore.cpython-311.pyc,,
+django/contrib/postgres/forms/__pycache__/ranges.cpython-311.pyc,,
+django/contrib/postgres/forms/array.py,sha256=SzEBc6tKuqqjpYKH2b0vpdAQsjTqE_3kbpXBN7dfMYM,8401
+django/contrib/postgres/forms/hstore.py,sha256=MXXS4LdrueKIlM3w-_QGVvV3MZXMx1TR_4NrpChAtQo,1787
+django/contrib/postgres/forms/ranges.py,sha256=cKAeWvRISPLXIPhm2C57Lu9GoIlAd1xiRxzns69XehA,3652
+django/contrib/postgres/functions.py,sha256=7v6J01QQvX70KFyg9hDc322PgvT62xZqWlzp_vrl8bA,252
+django/contrib/postgres/indexes.py,sha256=qH5_kKj7Jg038cDM84ZGrvENsCF1W-EL-5xXf8Whi4Y,8224
+django/contrib/postgres/jinja2/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/contrib/postgres/locale/af/LC_MESSAGES/django.mo,sha256=Jp70O4TcKfdf1HRT0zZbympLJqmL3wpxMKDpJBPkI-E,2871
+django/contrib/postgres/locale/af/LC_MESSAGES/django.po,sha256=r_uvR9RfLLYHcS1byClWQX66EXq5yV_MGd-BHnWf4j4,3241
+django/contrib/postgres/locale/ar/LC_MESSAGES/django.mo,sha256=hVoDVt3cbVirvRNyuRmYPWx9MN2UO7KAm0eps-smDbI,4352
+django/contrib/postgres/locale/ar/LC_MESSAGES/django.po,sha256=h368UQxPkd2bUe2n6QZN14hkh3669v_v_MfpoRI7i1g,4881
+django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=fND1NtGTmEl7Rukt_VlqJeExdJjphBygmI-qJmE83P0,4352
+django/contrib/postgres/locale/ar_DZ/LC_MESSAGES/django.po,sha256=Z9y3h6lDnbwD4JOn7OACLjEZqNY8OpEwuzoUD8FSdwA,4868
+django/contrib/postgres/locale/az/LC_MESSAGES/django.mo,sha256=85wf8nNlReuPu89B_kb632QFKEdtL8ZVyQdlV_f-Sdo,2899
+django/contrib/postgres/locale/az/LC_MESSAGES/django.po,sha256=HRF6LxxcKtmLEA1dsYQMU4oG3P61jbQbwG6x_Wy0t4w,3284
+django/contrib/postgres/locale/be/LC_MESSAGES/django.mo,sha256=tYaaEbBaVxIgxC9qUAuE3YpHJa-aUu9ufFuJLa8my-s,4143
+django/contrib/postgres/locale/be/LC_MESSAGES/django.po,sha256=CL9BslCvHOvwjTBbCEswW8ISH72gSAyW5Dc-zoXI670,4643
+django/contrib/postgres/locale/bg/LC_MESSAGES/django.mo,sha256=A_WOYkzm2QwAo8ZXCKg7jOOiM7bEwUT4cSsSlyC6sWQ,3529
+django/contrib/postgres/locale/bg/LC_MESSAGES/django.po,sha256=TEDRfX5DWADwlgYqScP1hGm2hq2_zUGzIBmKY8WLVLQ,3993
+django/contrib/postgres/locale/ca/LC_MESSAGES/django.mo,sha256=XR1UEZV9AXKFz7XrchjRkd-tEdjnlmccW_I7XANyMns,2904
+django/contrib/postgres/locale/ca/LC_MESSAGES/django.po,sha256=5wPLvkODU_501cHPZ7v0n89rmFrsuctt7T8dUBMfQ0Q,3430
+django/contrib/postgres/locale/ckb/LC_MESSAGES/django.mo,sha256=FQsR4nG0r8RfJ4rkD58XyWX-x7ZLkeg0VbZbSzDB2L0,3414
+django/contrib/postgres/locale/ckb/LC_MESSAGES/django.po,sha256=YStPyf6Gy68ydbzvtYcU6b_CV3h4JzJ3aYOQqccI9zI,3764
+django/contrib/postgres/locale/cs/LC_MESSAGES/django.mo,sha256=BgNruyg0gX0DNZ3mqFerVd2JcSmi4ARRWRhJKlcRhDw,3418
+django/contrib/postgres/locale/cs/LC_MESSAGES/django.po,sha256=evU4mQ9EOQJSxHF0dx_axiU59ptW0xVjIIxTgQCkUJU,3957
+django/contrib/postgres/locale/da/LC_MESSAGES/django.mo,sha256=VaTePWY3W7YRW-CkTUx6timYDXEYOFRFCkg3F36_k_I,2886
+django/contrib/postgres/locale/da/LC_MESSAGES/django.po,sha256=5j5xI-yKORhnywIACpjvMQA6yHj4aHMYiiN4KVSmBMM,3344
+django/contrib/postgres/locale/de/LC_MESSAGES/django.mo,sha256=iTfG4OxvwSG32U_PQ0Tmtl38v83hSjFa2W0J8Sw0NUE,3078
+django/contrib/postgres/locale/de/LC_MESSAGES/django.po,sha256=GkF6wBg7JAvAB8YExwOx4hzpLr1r2K6HsvSLYfyojow,3611
+django/contrib/postgres/locale/dsb/LC_MESSAGES/django.mo,sha256=zZa1kLFCKar4P1xVNpJ0BTXm4I-xcNi_e8IY7n8Aa4w,3605
+django/contrib/postgres/locale/dsb/LC_MESSAGES/django.po,sha256=5vnAeH9tF9H9xL2nqfwc0MLlhI4hnNr45x2NXlw8owo,4061
+django/contrib/postgres/locale/el/LC_MESSAGES/django.mo,sha256=NmzROkTfSbioGv8exM3UdMDnRAxR65YMteGv9Nhury4,3583
+django/contrib/postgres/locale/el/LC_MESSAGES/django.po,sha256=4WuswUwrInAh-OPX9k7gDdLb-oMKp1vQFUGvfm0ej00,4144
+django/contrib/postgres/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/postgres/locale/en/LC_MESSAGES/django.po,sha256=jrbHgf4TLTbEAaYV9-briB5JoE7sBWTn9r6aaRtpn54,2862
+django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.mo,sha256=WA0RSssD8ljI16g6DynQZQLQhd_0XR8ilrnJnepsIFg,2839
+django/contrib/postgres/locale/en_AU/LC_MESSAGES/django.po,sha256=4JASYUpYlQlSPREPvMxFBqDpDhprlkI1GpAqTJrmb10,3215
+django/contrib/postgres/locale/eo/LC_MESSAGES/django.mo,sha256=1wqM_IVO8Dl9AefzvWYuoS4eNTrBg7LDH6XUMovKi9A,2742
+django/contrib/postgres/locale/eo/LC_MESSAGES/django.po,sha256=r2tpOblfLAAHMacDWU-OVXTQus_vvAPMjUzVfrV_T7U,3217
+django/contrib/postgres/locale/es/LC_MESSAGES/django.mo,sha256=O2Tdel44oxmQ13ZcwMwK3QPxUPChHdUzVKg2pLCPoqo,3163
+django/contrib/postgres/locale/es/LC_MESSAGES/django.po,sha256=YPjvjmvpS69FuNmPm-7Z1K1Eg_W01JwRHNrWkbKzVZ8,3794
+django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.mo,sha256=zIN-1vsrChWXLDuGrzs61LbBuOwsyifWcvo9NrYCy2k,3140
+django/contrib/postgres/locale/es_AR/LC_MESSAGES/django.po,sha256=1seAy6OHEKG4fDV4NwKQyGfkjT29zjgwvXZ85u1VNtw,3506
+django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.mo,sha256=Q2eOegYKQFY3fAKZCX7VvZAN6lT304W51aGl0lzkbLU,2484
+django/contrib/postgres/locale/es_CO/LC_MESSAGES/django.po,sha256=bbgOn34B7CSq1Kf2IrJh6oRJWPur_Smc4ebljIxAFGE,3233
+django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.mo,sha256=l6WdS59mDfjsV9EMULjKP2DhXR7x3bYax1iokL-AXcU,689
+django/contrib/postgres/locale/es_MX/LC_MESSAGES/django.po,sha256=_-jzhIT71zV539_4SUbwvOXfDHkxRy1FDGdx23iB7B4,2283
+django/contrib/postgres/locale/et/LC_MESSAGES/django.mo,sha256=oPGqGUQhU9xE7j6hQZSVdC-be2WV-_BNrSAaN4csFR4,2886
+django/contrib/postgres/locale/et/LC_MESSAGES/django.po,sha256=xKkb-0CQCAn37xe0G2jfQmjg2kuYBmXB5yBpTA5lYNI,3404
+django/contrib/postgres/locale/eu/LC_MESSAGES/django.mo,sha256=UG7x642-n3U7mamXuNHD66a_mR0agX72xSwBD3PpyJU,2883
+django/contrib/postgres/locale/eu/LC_MESSAGES/django.po,sha256=dAx6nlRd4FF_8i7Xeylwvj4HkEDKi3swFenkdJkDawU,3321
+django/contrib/postgres/locale/fa/LC_MESSAGES/django.mo,sha256=uLh9fJtCSKg5eaj9uGP2muN_71aFxpZwOjRHtnZhPik,3308
+django/contrib/postgres/locale/fa/LC_MESSAGES/django.po,sha256=adN7bh9Q_R0Wzlf2fWaQnTtvxo0NslyoHH5t5V0eeMM,3845
+django/contrib/postgres/locale/fi/LC_MESSAGES/django.mo,sha256=yzMEJuOw30NzM6AdoTq0Kb-eb079nsvre09IVEBVVtE,2917
+django/contrib/postgres/locale/fi/LC_MESSAGES/django.po,sha256=bNPtE6kdb8lLHcrjRVxasfO3gnzklA2ZDUuXVE9tL1Y,3279
+django/contrib/postgres/locale/fr/LC_MESSAGES/django.mo,sha256=02ug8j0VpkPC2tRDkXrK2snj91M68Ju29PUiv4UhAsQ,3391
+django/contrib/postgres/locale/fr/LC_MESSAGES/django.po,sha256=5T_wkYoHJcpzemKqR-7apZ11Pas4dZhnAitHOgT8gRc,3759
+django/contrib/postgres/locale/ga/LC_MESSAGES/django.mo,sha256=wVzUMn8xlOxfL2vn94fSQ73QGTSbTBG6_6kfQbDPQYM,3652
+django/contrib/postgres/locale/ga/LC_MESSAGES/django.po,sha256=OEuRFUSNTJJlJAg7mvXpratMipVeCovYsH9pTssNGI0,4122
+django/contrib/postgres/locale/gd/LC_MESSAGES/django.mo,sha256=okWU_Ke95EG2pm8rZ4PT5ScO-8f0Hqg65lYZgSid8tM,3541
+django/contrib/postgres/locale/gd/LC_MESSAGES/django.po,sha256=tjt5kfkUGryU3hFzPuAly2DBDLuLQTTD5p-XrxryFEI,4013
+django/contrib/postgres/locale/gl/LC_MESSAGES/django.mo,sha256=1Od7e0SG9tEeTefFLLWkU38tlk5PL5aRF1GTlKkfTAs,2912
+django/contrib/postgres/locale/gl/LC_MESSAGES/django.po,sha256=tE2-GX2OH06krOFxvzdJeYWC7a57QYNFx5OtMXFWTdQ,3316
+django/contrib/postgres/locale/he/LC_MESSAGES/django.mo,sha256=znkNJeCKSSA4DPdvN5LCj5tdcWvRJQKRLWMXqSIO4FI,3757
+django/contrib/postgres/locale/he/LC_MESSAGES/django.po,sha256=oVJ0bfd9gH3aF3lo6rCMbA_9_3nhLWKBqfVj-H220F0,4234
+django/contrib/postgres/locale/hr/LC_MESSAGES/django.mo,sha256=vdm5GxgpKuVdGoVl3VreD8IB1Mq5HGWuq-2YDeDrNnU,929
+django/contrib/postgres/locale/hr/LC_MESSAGES/django.po,sha256=8TxEnVH2yIQWbmbmDOpR7kksNFSaUGVhimRPQgSgDkM,2501
+django/contrib/postgres/locale/hsb/LC_MESSAGES/django.mo,sha256=SSZpG-PSeVCHrzB-wzW4wRHxIEt7hqobzvRLB-9tu8Y,3518
+django/contrib/postgres/locale/hsb/LC_MESSAGES/django.po,sha256=UQUlfpJsgd-0qa6hZhUkTAi6VF5ZYiygSMrLcsiEC4k,3971
+django/contrib/postgres/locale/hu/LC_MESSAGES/django.mo,sha256=o6JDAFIN7i21GE2N0q98SiqIdvGYPLLdDiMLC_UE5hM,2892
+django/contrib/postgres/locale/hu/LC_MESSAGES/django.po,sha256=yUcbOn1k08aqhkODsrQfLR3qk-UnEEbEYuP3JyQ3eCU,3432
+django/contrib/postgres/locale/hy/LC_MESSAGES/django.mo,sha256=2QFIJdmh47IGPqI-8rvuHR0HdH2LOAmaYqEeCwUpRuw,3234
+django/contrib/postgres/locale/hy/LC_MESSAGES/django.po,sha256=MLHMbdwdo1txzFOG-fVK4VUvAoDtrLA8CdpQThybSCQ,3825
+django/contrib/postgres/locale/ia/LC_MESSAGES/django.mo,sha256=gn8lf-gOP4vv-iiqnkcxvjzhJ8pTdetBhHyjl4TapXo,582
+django/contrib/postgres/locale/ia/LC_MESSAGES/django.po,sha256=FsqhPQf0j4g06rGuWSTn8A1kJ7E5U9rX16mtB8CAiIE,2251
+django/contrib/postgres/locale/id/LC_MESSAGES/django.mo,sha256=vWCSZJBmKu5uGS8KvQIJSMZA1YTwdbbJP4-OBhTmAwQ,2737
+django/contrib/postgres/locale/id/LC_MESSAGES/django.po,sha256=Z5TrRpCOv6Mgb2YFU84vE8cT_3W7flFwA8BUMm4VvO0,3308
+django/contrib/postgres/locale/is/LC_MESSAGES/django.mo,sha256=rNL5Un5K_iRAZDtpHo4egcySaaBnNEirYDuWw0eI7gk,2931
+django/contrib/postgres/locale/is/LC_MESSAGES/django.po,sha256=UO53ciyI0jCVtBOXWkaip2AbPE2Hd2YhzK1RAlcxyQ8,3313
+django/contrib/postgres/locale/it/LC_MESSAGES/django.mo,sha256=dsn-Xuhg1WeRkJVGHHdoPz-KobYsS8A41BUdnM4wQQ8,3210
+django/contrib/postgres/locale/it/LC_MESSAGES/django.po,sha256=2RpaA-mmvXcYkYTu_y0u3p32aAhP9DyAy641ZJL79sk,3874
+django/contrib/postgres/locale/ja/LC_MESSAGES/django.mo,sha256=IC9mYW8gXWNGuXeh8gGxGFvrjfxiSpj57E63Ka47pkM,3046
+django/contrib/postgres/locale/ja/LC_MESSAGES/django.po,sha256=IPnDsh8rtq158a63zQJekJ0LJlR3uj6KAjx4omc7XN0,3437
+django/contrib/postgres/locale/ka/LC_MESSAGES/django.mo,sha256=A_VhLUZbocGNF5_5mMoYfB3l654MrPIW4dL1ywd3Tw8,713
+django/contrib/postgres/locale/ka/LC_MESSAGES/django.po,sha256=kRIwQ1Nrzdf5arHHxOPzQcB-XwPNK5lUFKU0L3QHfC8,2356
+django/contrib/postgres/locale/kk/LC_MESSAGES/django.mo,sha256=xMc-UwyP1_jBHcGIAGWmDAjvSL50jJaiZbcT5TmzDOg,665
+django/contrib/postgres/locale/kk/LC_MESSAGES/django.po,sha256=f6Z3VUFRJ3FgSReC0JItjA0RaYbblqDb31lbJ3RRExQ,2327
+django/contrib/postgres/locale/ko/LC_MESSAGES/django.mo,sha256=G9Cl4uFost_c2y-3dBEF5ODuOe2BLThiXcEMEMXQQE8,2905
+django/contrib/postgres/locale/ko/LC_MESSAGES/django.po,sha256=JXqG3VCGEhBzAxGzOBb9w6oflaX4duhxNVht69ytOQY,3481
+django/contrib/postgres/locale/ky/LC_MESSAGES/django.mo,sha256=F0Ws34MbE7zJa8FNxA-9rFm5sNLL22D24LyiBb927lE,3101
+django/contrib/postgres/locale/ky/LC_MESSAGES/django.po,sha256=yAzSeT2jBm7R2ZXiuYBQFSKQ_uWIUfNTAobE1UYnlPs,3504
+django/contrib/postgres/locale/lt/LC_MESSAGES/django.mo,sha256=kJ3ih8HrHt2M_hFW0H9BZg7zcj6sXy6H_fD1ReIzngM,3452
+django/contrib/postgres/locale/lt/LC_MESSAGES/django.po,sha256=PNADIV8hdpLoqwW4zpIhxtWnQN8cPkdcoXYngyjFeFw,3972
+django/contrib/postgres/locale/lv/LC_MESSAGES/django.mo,sha256=kJBPR0f-rI87irX3_HBqZZrpCwQdGhcakVEdLq3z70M,3103
+django/contrib/postgres/locale/lv/LC_MESSAGES/django.po,sha256=a3nWc048ppAw5BIxNxqFBBHlYtszJJPo2v2w-tfdTBk,3734
+django/contrib/postgres/locale/mk/LC_MESSAGES/django.mo,sha256=WE4nRJKWAZvXuyU2qT2_FGqGlKYsP1KSACCtT10gQQY,3048
+django/contrib/postgres/locale/mk/LC_MESSAGES/django.po,sha256=CQX91LP1Gbkazpt4hTownJtSqZGR1OJfoD-1MCo6C1Y,3783
+django/contrib/postgres/locale/ml/LC_MESSAGES/django.mo,sha256=N47idWIsmtghZ_D5325TRsDFeoUa0MIvMFtdx7ozAHc,1581
+django/contrib/postgres/locale/ml/LC_MESSAGES/django.po,sha256=lt_7fGZV7BCB2XqFWIQQtH4niU4oMBfGzQQuN5sD0fo,2947
+django/contrib/postgres/locale/mn/LC_MESSAGES/django.mo,sha256=VWeXaMvdqhW0GHs1Irb1ikTceH7jMKH_xMzKLH0vKZg,3310
+django/contrib/postgres/locale/mn/LC_MESSAGES/django.po,sha256=p3141FJiYrkV8rocgqdxnV05FReQYZmosv9LI46FlfE,3867
+django/contrib/postgres/locale/mr/LC_MESSAGES/django.mo,sha256=vVYwi51As7ovNuvoGU96oL3uryKHGVPCJXS2rRrkZ2o,1132
+django/contrib/postgres/locale/mr/LC_MESSAGES/django.po,sha256=DHSatTEPlPRSH_qXXBXKeyHB1X7YQ0UhkUc-j92iAyY,2595
+django/contrib/postgres/locale/ms/LC_MESSAGES/django.mo,sha256=m3JZm1IIMZwmpvIs3oV0roYCeR_UlswHyCpZjjE6-A8,2712
+django/contrib/postgres/locale/ms/LC_MESSAGES/django.po,sha256=HCMBA1fxKLJct14ywap0PYVBi2bDp2F97Ms5_-G_Pwg,3025
+django/contrib/postgres/locale/nb/LC_MESSAGES/django.mo,sha256=3h8DqEFG39i6uHY0vpXuGFmoJnAxTtRFy1RazcYIXfg,2849
+django/contrib/postgres/locale/nb/LC_MESSAGES/django.po,sha256=gDUg-HDg3LiYMKzb2QaDrYopqaJmbvnw2Fo-qhUHFuI,3252
+django/contrib/postgres/locale/ne/LC_MESSAGES/django.mo,sha256=5XdBLGMkn20qeya3MgTCpsIDxLEa7PV-i2BmK993iRc,875
+django/contrib/postgres/locale/ne/LC_MESSAGES/django.po,sha256=1QLLfbrHneJmxM_5UTpNIYalP-qX7Bn7bmj4AfDLIzE,2421
+django/contrib/postgres/locale/nl/LC_MESSAGES/django.mo,sha256=XK0L91JYDbkgw45eJysai_3u28KqZ5UFPTYaCTMiDPA,2993
+django/contrib/postgres/locale/nl/LC_MESSAGES/django.po,sha256=qU17zpXRHSoBQIkcP-Cm1GFh0BcpUTJsdh277P8dYG0,3565
+django/contrib/postgres/locale/nn/LC_MESSAGES/django.mo,sha256=RdMFozwxYIckBY40mJhN-jjkghztKn0-ytCtqxFHBMY,2836
+django/contrib/postgres/locale/nn/LC_MESSAGES/django.po,sha256=vl8NkY342eonqbrj89eCR_8PsJpeQuaRjxems-OPIBk,3184
+django/contrib/postgres/locale/pl/LC_MESSAGES/django.mo,sha256=Wox9w-HN7Guf8N1nkgemuDVs0LQxxTmEqQDOxriKy60,3462
+django/contrib/postgres/locale/pl/LC_MESSAGES/django.po,sha256=pxm_IKMg8g5qfg19CKc5JEdK6IMnhyeSPHd7THUb1GY,4217
+django/contrib/postgres/locale/pt/LC_MESSAGES/django.mo,sha256=KZvJXjrIdtxbffckcrRV3nJ5GnID6PvqAb7vpOiWpHE,2745
+django/contrib/postgres/locale/pt/LC_MESSAGES/django.po,sha256=2gIDOjnFo6Iom-oTkQek4IX6FYPI9rNp9V-6sJ55aL8,3281
+django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.mo,sha256=PVEiflh0v3AqVOC0S85XO-V3xDU3d8UwS31lzGrLoi8,3143
+django/contrib/postgres/locale/pt_BR/LC_MESSAGES/django.po,sha256=onF2K6s-McAXDSRzQ50EpGrKAIv89vvRWjCjsLCVXvs,3896
+django/contrib/postgres/locale/ro/LC_MESSAGES/django.mo,sha256=w4tyByrZlba_Ju_F2OzD52ut5JSD6UGJfjt3A7CG_uc,3188
+django/contrib/postgres/locale/ro/LC_MESSAGES/django.po,sha256=hnotgrr-zeEmE4lgpqDDiJ051GoGbL_2GVs4O9dVLXI,3700
+django/contrib/postgres/locale/ru/LC_MESSAGES/django.mo,sha256=LKkZs-TvPFTSrXVVaaoZ-Ec0kL_E9_5vTaExVxlr_rk,4732
+django/contrib/postgres/locale/ru/LC_MESSAGES/django.po,sha256=mnmVUlwZqn9QwdMx4g0D9xYxxKw_4pMFslwT2c4AjuE,5488
+django/contrib/postgres/locale/sk/LC_MESSAGES/django.mo,sha256=dRnTFkvRMbq5QnVEtrQ9Of9MxKTFYPP8sE7kbvUEjug,3381
+django/contrib/postgres/locale/sk/LC_MESSAGES/django.po,sha256=OwKv_mc9cuwt_YGnoVQLF3t2RsIbFyG_k3NKoIMAMoY,3899
+django/contrib/postgres/locale/sl/LC_MESSAGES/django.mo,sha256=JM9YZagjHIIrCxOKkR4d4oKaEXKJU7bfVdM3_uzSTAE,2810
+django/contrib/postgres/locale/sl/LC_MESSAGES/django.po,sha256=1jI2zXSU4LWxfLEUL-FXpldCExZJLD53Jy7VnA258xs,3602
+django/contrib/postgres/locale/sq/LC_MESSAGES/django.mo,sha256=iUrpd4u_bfpkMyfBb4BPNcwCvsVpJiRVBLvjXjIC18w,2850
+django/contrib/postgres/locale/sq/LC_MESSAGES/django.po,sha256=ZuUrdJOSecnyGJC50Eh3L7LKCpJpkLZFixGdieQM-uA,3349
+django/contrib/postgres/locale/sr/LC_MESSAGES/django.mo,sha256=OfsUq8rZdD2NP7NQjBoatSXATxc8d6QL-nxmlPp5QSc,3775
+django/contrib/postgres/locale/sr/LC_MESSAGES/django.po,sha256=vUvFaIp8renqgGs-VgrtPNu7IBkcB38mlTBJ0xxXTaI,4214
+django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=2nDFP43vk1Jih35jns8vSbOhhLq_w7t_2vJHg-crfxY,3112
+django/contrib/postgres/locale/sr_Latn/LC_MESSAGES/django.po,sha256=QN4NEy0zFaPNjTCBrT9TydedWG7w4QBPm-pO7cKvSjg,3510
+django/contrib/postgres/locale/sv/LC_MESSAGES/django.mo,sha256=AkUgWYRBGNJYg5QDPJR3qu4BA_XF9xaZA__3m_KF4hk,2918
+django/contrib/postgres/locale/sv/LC_MESSAGES/django.po,sha256=hhJBRobgyHkLeKxdDxNkEl9XKkDXkrlx6PjyWcERp7I,3487
+django/contrib/postgres/locale/tg/LC_MESSAGES/django.mo,sha256=3yW5NKKsa2f2qDGZ4NGlSn4DHatLOYEv5SEwB9voraA,2688
+django/contrib/postgres/locale/tg/LC_MESSAGES/django.po,sha256=Zuix5sJH5Fz9-joe_ivMRpNz2Fbzefsxz3OOoDV0o1c,3511
+django/contrib/postgres/locale/tk/LC_MESSAGES/django.mo,sha256=ytivs6cnECDuyVKToFQMRnH_RPr4PlVepg8xFHnr0W4,2789
+django/contrib/postgres/locale/tk/LC_MESSAGES/django.po,sha256=bfXIyKNOFRC3U34AEKCsYQn3XMBGtgqHsXpboHvRQq0,3268
+django/contrib/postgres/locale/tr/LC_MESSAGES/django.mo,sha256=hZ2pxkYNOGE4BX--QmDlzqXxT21gHaPGA6CmXDODzhI,2914
+django/contrib/postgres/locale/tr/LC_MESSAGES/django.po,sha256=fzQsDL_wSO62qUaXCutRgq0ifrQ9oOaaxVQRyfnvV7Y,3288
+django/contrib/postgres/locale/ug/LC_MESSAGES/django.mo,sha256=ClLFBgCNopAREx7jy9WRbEASJERWJO8WZHriZrPtDZU,3938
+django/contrib/postgres/locale/ug/LC_MESSAGES/django.po,sha256=Ldd11fS8-D6ZeannnC6pCmBk7fmtqR_RXaeaNZQtU6M,4323
+django/contrib/postgres/locale/uk/LC_MESSAGES/django.mo,sha256=Jg6nM7ah7hEv7eqpe11e0e_MvRaMAQW3mdHTj9hqyG8,4406
+django/contrib/postgres/locale/uk/LC_MESSAGES/django.po,sha256=6gBP1xKxK9hf8ISCR1wABxkKXEUTx2CUYHGr6RVPI94,5100
+django/contrib/postgres/locale/uz/LC_MESSAGES/django.mo,sha256=PcmhhVC1spz3EFrQ2qdhfPFcA1ELHtBhHGWk9Z868Ss,703
+django/contrib/postgres/locale/uz/LC_MESSAGES/django.po,sha256=lbQxX2cmueGCT8sl6hsNWcrf9H-XEUbioP4L7JHGqiU,2291
+django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=ln_p6MRs5JPvTAXFzegXYnCCKki-LEr_YiOw6sK8oPA,2560
+django/contrib/postgres/locale/zh_Hans/LC_MESSAGES/django.po,sha256=7YZE8B0c1HuKVjGzreY7iiyuFeyPgqzKIwzxe5YOKb4,3084
+django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=7-gE2HUKbQwMwzMXT3_sMbI2GbuS2uzciNnJgKOMZUQ,2563
+django/contrib/postgres/locale/zh_Hant/LC_MESSAGES/django.po,sha256=nkYgbfQNoa3eYNCYMPgGVhtGWScjWtP2rjlV8nAXgH0,2973
+django/contrib/postgres/lookups.py,sha256=J50bsr8rLjp_zzdViSVDDcTLfDkY21fEUoyqCgeHauI,1991
+django/contrib/postgres/operations.py,sha256=3sDyWh9u4I87AIabLAtYOSEB4NAFSk-IKJsb2400AQk,12274
+django/contrib/postgres/search.py,sha256=bIXux7NXgsVTVAauvScWUPtYNR4E2u1D1Rd6PNf2s6Y,11732
+django/contrib/postgres/serializers.py,sha256=wCg0IzTNeuVOiC2cdy1wio6gChjqVvH6Ri4hkCkEeXU,435
+django/contrib/postgres/signals.py,sha256=cpkaedbyvajpN4NNAYLA6TfKI_4fe9AU40CeYhYmS8Q,2870
+django/contrib/postgres/templates/postgres/widgets/split_array.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/contrib/postgres/utils.py,sha256=32nCnzdMZ7Ra4dDonbIdv1aCppV3tnQnoEX9AhCJe38,1187
+django/contrib/postgres/validators.py,sha256=GCJtwISehlhcqQhR5JEfrcwPUcCJqtpFV_fu4aRLb34,2801
+django/contrib/redirects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/redirects/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/redirects/__pycache__/admin.cpython-311.pyc,,
+django/contrib/redirects/__pycache__/apps.cpython-311.pyc,,
+django/contrib/redirects/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/redirects/__pycache__/models.cpython-311.pyc,,
+django/contrib/redirects/admin.py,sha256=1bPOgeZYRYCHdh7s2SpXnuL2WsfdQjD96U5Y3xhRY8g,314
+django/contrib/redirects/apps.py,sha256=1uS5EBp7WwDnY0WHeaRYo7VW9j-s20h4KDdImodjCNg,251
+django/contrib/redirects/locale/af/LC_MESSAGES/django.mo,sha256=p1jR8LLNrzuDM6gvYBzQAS5xg7X8O17301Fo5xEU2yI,1151
+django/contrib/redirects/locale/af/LC_MESSAGES/django.po,sha256=wkVhdkjL6kI-0uxzWPCrEMhf_iUSbbHV1D0dFPIw1eU,1385
+django/contrib/redirects/locale/ar/LC_MESSAGES/django.mo,sha256=FfPauXNUmQxq0R1-eQ2xw2WY1Oi33sLwVhyKX10_zFw,1336
+django/contrib/redirects/locale/ar/LC_MESSAGES/django.po,sha256=X0xX51asSDWedd56riJ4UrsCGEjH-lZdkcilIg4amgI,1595
+django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=hg1lkBEORP2vgLPRbuKcXiIFUcTvAO7KrjbPXlWhvqY,1379
+django/contrib/redirects/locale/ar_DZ/LC_MESSAGES/django.po,sha256=O4quBKA1jHATGGeDqCONDFfAqvDvOAATIBvueeMphyY,1581
+django/contrib/redirects/locale/ast/LC_MESSAGES/django.mo,sha256=a1ixBQQIdBZ7o-ADnF2r74CBtPLsuatG7txjc05_GXI,1071
+django/contrib/redirects/locale/ast/LC_MESSAGES/django.po,sha256=PguAqeIUeTMWsADOYLTxoC6AuKrCloi8HN18hbm3pZ0,1266
+django/contrib/redirects/locale/az/LC_MESSAGES/django.mo,sha256=IBIB2EW9ZYQTD0x4d8VadXY0lFx-XYtKCd1F_e72ibA,1106
+django/contrib/redirects/locale/az/LC_MESSAGES/django.po,sha256=D3ZGFhKeMTjJ4YtUOTRjBCvZ2cofqfksbk39mvHDemw,1384
+django/contrib/redirects/locale/be/LC_MESSAGES/django.mo,sha256=fVqy28ml508UJf5AA-QVsS5dzKI8Q_ugZZ34WjTpJ-s,1426
+django/contrib/redirects/locale/be/LC_MESSAGES/django.po,sha256=zHBVewcpt0KoavV96v3F4wybqtkGb1jUuPz7sbiWWDI,1662
+django/contrib/redirects/locale/bg/LC_MESSAGES/django.mo,sha256=o-ETSDGtAFZRo3SPd_IHe0mJ3R0RHA32KpgfOmUH11M,1279
+django/contrib/redirects/locale/bg/LC_MESSAGES/django.po,sha256=9qm8s6vj-0LStnyEJ8iYVi13_MfugVAAs2RHvIi7kW8,1587
+django/contrib/redirects/locale/bn/LC_MESSAGES/django.mo,sha256=SbQh_pgxNCogvUFud7xW9T6NTAvpaQb2jngXCtpjICM,1319
+django/contrib/redirects/locale/bn/LC_MESSAGES/django.po,sha256=LgUuiPryDLSXxo_4KMCdjM5XC3BiRfINuEk0s5PUQYQ,1511
+django/contrib/redirects/locale/br/LC_MESSAGES/django.mo,sha256=Yt8xo5B5LJ9HB8IChCkj5mljFQAAKlaW_gurtF8q8Yw,1429
+django/contrib/redirects/locale/br/LC_MESSAGES/django.po,sha256=L2qPx6mZEVUNay1yYEweKBLr_fXVURCnACfsezfP_pI,1623
+django/contrib/redirects/locale/bs/LC_MESSAGES/django.mo,sha256=0Yak4rXHjRRXLu3oYYzvS8qxvk2v4IFvUiDPA68a5YI,1115
+django/contrib/redirects/locale/bs/LC_MESSAGES/django.po,sha256=s9Nhx3H4074hlSqo1zgQRJbozakdJTwA1aTuMSqEJWw,1316
+django/contrib/redirects/locale/ca/LC_MESSAGES/django.mo,sha256=VHE6qHCEoA7rQk0fMUpoTfwqSfu63-CiOFvhvKp5DMQ,1136
+django/contrib/redirects/locale/ca/LC_MESSAGES/django.po,sha256=PSMb_7iZBuYhtdR8byh9zr9dr50Z_tQ518DUlqoEA_M,1484
+django/contrib/redirects/locale/ckb/LC_MESSAGES/django.mo,sha256=23RM9kso65HHxGHQ_DKxGDaUkmdX72DfYvqQfhr7JKw,1340
+django/contrib/redirects/locale/ckb/LC_MESSAGES/django.po,sha256=cGrAq3e6h3vbYrtyi0oFSfZmLlJ0-Y3uqrvFon48n80,1521
+django/contrib/redirects/locale/cs/LC_MESSAGES/django.mo,sha256=UwYsoEHsg7FJLVe0JxdOa1cTGypqJFienAbWe7Vldf0,1229
+django/contrib/redirects/locale/cs/LC_MESSAGES/django.po,sha256=hnWJLXX7IjwZK7_8L3p-dpj5XpDmEo7lQ7-F4upjn7U,1504
+django/contrib/redirects/locale/cy/LC_MESSAGES/django.mo,sha256=NSGoK12A7gbtuAuzQEVFPNSZMqqmhHyRvTEn9PUm9So,1132
+django/contrib/redirects/locale/cy/LC_MESSAGES/django.po,sha256=jDmC64z5exPnO9zwRkBmpa9v3DBlaeHRhqZYPoWqiIY,1360
+django/contrib/redirects/locale/da/LC_MESSAGES/django.mo,sha256=_UVfTMRG__5j7Ak8Q3HtXSy_DPGpZ1XvKj9MHdmR_xI,1132
+django/contrib/redirects/locale/da/LC_MESSAGES/django.po,sha256=RAWWbZXbJciNSdw4skUEoTnOb19iKXAe1KXJLWi0zPQ,1418
+django/contrib/redirects/locale/de/LC_MESSAGES/django.mo,sha256=uh-ldy-QkWS5-ARX6cLyzxzdhbTb_chyEbBPFCvCKuE,1155
+django/contrib/redirects/locale/de/LC_MESSAGES/django.po,sha256=hhGNnVCRV4HNxhCYfmVXTOIkabD7qsVQccwxKa5Tz9g,1424
+django/contrib/redirects/locale/dsb/LC_MESSAGES/django.mo,sha256=LXgczA38RzrN7zSWpxKy8_RY4gPg5tZLl30CJGjJ63s,1236
+django/contrib/redirects/locale/dsb/LC_MESSAGES/django.po,sha256=rI9dyDp7zuZ6CjvFyo2OkGUDK5XzdvdI0ma8IGVkjp4,1431
+django/contrib/redirects/locale/el/LC_MESSAGES/django.mo,sha256=sD3HT4e53Yd3HmQap_Mqlxkm0xF98A6PFW8Lil0PihI,1395
+django/contrib/redirects/locale/el/LC_MESSAGES/django.po,sha256=puhVCcshg5HaPHsVAOucneVgBYT6swhCCBpVGOZykgA,1716
+django/contrib/redirects/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/redirects/locale/en/LC_MESSAGES/django.po,sha256=u4RcMkFmNvlG9Bv6kM0a0scWUMDUbTEDJGR90-G8C0E,1123
+django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.mo,sha256=wxCpSLGl_zsE47kDwilDkpihazwHkA363PvtGOLWhdk,1127
+django/contrib/redirects/locale/en_AU/LC_MESSAGES/django.po,sha256=zujH1WuxoHw_32flptG0x2Ob_BlilLKXuMjQxVbZmgw,1307
+django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.mo,sha256=VscL30uJnV-eiQZITpBCy0xk_FfKdnMh4O9Hk4HGxww,1053
+django/contrib/redirects/locale/en_GB/LC_MESSAGES/django.po,sha256=loe8xIVjZ7eyteQNLPoa-QceBZdgky22dR6deK5ubmA,1246
+django/contrib/redirects/locale/eo/LC_MESSAGES/django.mo,sha256=WZ3NHrS0qMoCJER5jWnGI12bvY5wH0yytM8F7BFTgYc,712
+django/contrib/redirects/locale/eo/LC_MESSAGES/django.po,sha256=T-Gw75sOjZgqpwjIfieIrLxbg1kekWzjrJYSMld2OEQ,1299
+django/contrib/redirects/locale/es/LC_MESSAGES/django.mo,sha256=xyeIQL_pHFyo7p7SkeuxzKdDsma2EXhvnPNDHUhaBv8,1159
+django/contrib/redirects/locale/es/LC_MESSAGES/django.po,sha256=Y3hPQrcbhLtR-pPYRJJXkJME5M8Enr20j9D63hhe9ZA,1490
+django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.mo,sha256=JdKzpdyf9W2m_0_NguvXvyciOh6LAATfE6lqcsp45To,1144
+django/contrib/redirects/locale/es_AR/LC_MESSAGES/django.po,sha256=3zrKJXLh_mrjc4A6g9O6ePyFz8PNUMYTPjNFpvEhaDo,1364
+django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.mo,sha256=wcAMOiqsgz2KEpRwirRH9FNoto6vmo_hxthrQJi0IHU,1147
+django/contrib/redirects/locale/es_CO/LC_MESSAGES/django.po,sha256=n8DM14vHekZRayH0B6Pm3L5XnSo4lto4ZAdu4OhcOmc,1291
+django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.mo,sha256=38fbiReibMAmC75BCCbyo7pA2VA3QvmRqVEo_K6Ejow,1116
+django/contrib/redirects/locale/es_MX/LC_MESSAGES/django.po,sha256=t7R6PiQ1bCc7jhfMrjHlZxVQ6BRlWT2Vv4XXhxBD_Oo,1397
+django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486
+django/contrib/redirects/locale/es_VE/LC_MESSAGES/django.po,sha256=f4XZW8OHjRJoztMJtSDCxd2_Mfy-XK44hLtigjGSsZY,958
+django/contrib/redirects/locale/et/LC_MESSAGES/django.mo,sha256=34-Z1s9msdnj6U7prMctEWCxAR8TNnP44MIoyUuFsls,1131
+django/contrib/redirects/locale/et/LC_MESSAGES/django.po,sha256=1VWcUbM9z_nNmiGnT9Mka3Y3ZLRVHuJdS_j_yNXvmQ0,1479
+django/contrib/redirects/locale/eu/LC_MESSAGES/django.mo,sha256=yHlAEz01pWse4ZworAj7JiATUam5Fp20EZd_3PRgSNw,1126
+django/contrib/redirects/locale/eu/LC_MESSAGES/django.po,sha256=zAvSdahjvq727hXeGjHJ_R5L5meCrOv98tbH3rwlBcE,1404
+django/contrib/redirects/locale/fa/LC_MESSAGES/django.mo,sha256=vZa1KKm2y8duEv9UbJMyiM8WO2EAXcevdR3Lj1ISgLU,1234
+django/contrib/redirects/locale/fa/LC_MESSAGES/django.po,sha256=1quB0Wx5VTIjX2QUCpENl1GA2hpSdsRpgK931jr20B0,1541
+django/contrib/redirects/locale/fi/LC_MESSAGES/django.mo,sha256=xJEd4M2IowXxKBlaGuOEgFKA9OuihcgPoK07Beat4cc,1164
+django/contrib/redirects/locale/fi/LC_MESSAGES/django.po,sha256=1I7AoXMPRDMY6TCjPkQh0Q9g68r9BwKOwki9DybcFWc,1429
+django/contrib/redirects/locale/fr/LC_MESSAGES/django.mo,sha256=YhVNoNaHdSOp2P2F7xfo2MHCd2KkHiehpVjLyJ4VLuw,1155
+django/contrib/redirects/locale/fr/LC_MESSAGES/django.po,sha256=-ljzEKiU05annJ8DHw4OOg8eDCAnWLV2V33R-tQn9dE,1391
+django/contrib/redirects/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/redirects/locale/fy/LC_MESSAGES/django.po,sha256=D7xverCbf3kTCcFM8h7EKWM5DcxZRqeOSKDB1irbKeE,948
+django/contrib/redirects/locale/ga/LC_MESSAGES/django.mo,sha256=DMxYLCVQl6qtLf8SXpcy1u9DLbTVFM-03Q2iXjNxNs0,1182
+django/contrib/redirects/locale/ga/LC_MESSAGES/django.po,sha256=HL2vCAoXAj0pk4MkrriUY_Jp2xvDaMqJo8i1z2MkKT8,1497
+django/contrib/redirects/locale/gd/LC_MESSAGES/django.mo,sha256=baZXdulbPZwe4_Q3OwfHFl4GJ4hCYtoZz-lE4wcdJvg,1250
+django/contrib/redirects/locale/gd/LC_MESSAGES/django.po,sha256=M4E2giFgzRowd3OsvhD389MyJmT5osKz1Vs1sEfmUpU,1428
+django/contrib/redirects/locale/gl/LC_MESSAGES/django.mo,sha256=au4ulT76A8cd_C_DmtEdiuQ14dIJaprVvFbS9_hYRNk,1131
+django/contrib/redirects/locale/gl/LC_MESSAGES/django.po,sha256=r2t9gHhIvPb8d9XR8fG0b_eW5xkkQswuj4ekJI9x90w,1393
+django/contrib/redirects/locale/he/LC_MESSAGES/django.mo,sha256=Yu8KTmY0mJEcxhkhTEVElPBaWwO9Zj4NqC8eopW0cRc,1278
+django/contrib/redirects/locale/he/LC_MESSAGES/django.po,sha256=UcCd_BqHOkTV1dP0hgJ4dNQzBZ4p8TujwSjF3FWAMjo,1513
+django/contrib/redirects/locale/hi/LC_MESSAGES/django.mo,sha256=onR8L7Kvkx6HgFLK7jT-wA_zjarBN8pyltG6BbKFIWU,1409
+django/contrib/redirects/locale/hi/LC_MESSAGES/django.po,sha256=fNv9_qwR9iS-pjWNXnrUFIqvc10lwg3bfj5lgdQOy1U,1649
+django/contrib/redirects/locale/hr/LC_MESSAGES/django.mo,sha256=7wHi6Uu0czZhI6v0ndJJ1wSkalTRfn7D5ovyw8tr4U4,1207
+django/contrib/redirects/locale/hr/LC_MESSAGES/django.po,sha256=HtxZwZ-ymmf-XID0z5s7nGYg-4gJL8i6FDGWt9i4Wns,1406
+django/contrib/redirects/locale/hsb/LC_MESSAGES/django.mo,sha256=6lfIW4LcMGvuLOY0U4w1V6Xwcd_TsUC3r-QzZOOLwys,1221
+django/contrib/redirects/locale/hsb/LC_MESSAGES/django.po,sha256=l5pATo8NHa8ypB8dCigRwqpLZvV8W0v2vPh60oAeGn0,1420
+django/contrib/redirects/locale/hu/LC_MESSAGES/django.mo,sha256=4oYBNGEmFMISzw3LExVf6CHsJD_o20mMy132pwzM-wk,1111
+django/contrib/redirects/locale/hu/LC_MESSAGES/django.po,sha256=UYJ_ZrAnOqA6S8nkkfN_FBLxCyPHJjOMd1OSIUVc8aY,1383
+django/contrib/redirects/locale/hy/LC_MESSAGES/django.mo,sha256=gT5x1TZXMNyBwfmQ-C_cOB60JGYdKIM7tVb3-J5d6nw,1261
+django/contrib/redirects/locale/hy/LC_MESSAGES/django.po,sha256=40QTpth2AVeoy9P36rMJC2C82YsBh_KYup19WL6zM6w,1359
+django/contrib/redirects/locale/ia/LC_MESSAGES/django.mo,sha256=PDB5ZQP6iH31xN6N2YmPZYjt6zzc88TRmh9_gAWH2U0,1152
+django/contrib/redirects/locale/ia/LC_MESSAGES/django.po,sha256=GXjbzY-cQz2QLx_iuqgijT7VUMcoNKL7prbP6yIbj8E,1297
+django/contrib/redirects/locale/id/LC_MESSAGES/django.mo,sha256=XEsvVWMR9As9csO_6iXNAcLZrErxz3HfDj5GTe06fJU,1105
+django/contrib/redirects/locale/id/LC_MESSAGES/django.po,sha256=t8FoC1xIB-XHDplyDJByQGFnHggxR0LSfUMGwWoAKWE,1410
+django/contrib/redirects/locale/io/LC_MESSAGES/django.mo,sha256=vz7TWRML-DFDFapbEXTByb9-pRQwoeJ0ApSdh6nOzXY,1019
+django/contrib/redirects/locale/io/LC_MESSAGES/django.po,sha256=obStuMYYSQ7x2utkGS3gekdPfnsNAwp3DcNwlwdg1sI,1228
+django/contrib/redirects/locale/is/LC_MESSAGES/django.mo,sha256=aMjlGilYfP7clGriAp1Za60uCD40rvLt9sKXuYX3ABg,1040
+django/contrib/redirects/locale/is/LC_MESSAGES/django.po,sha256=nw5fxVV20eQqsk4WKg6cIiKttG3zsITSVzH4p5xBV8s,1299
+django/contrib/redirects/locale/it/LC_MESSAGES/django.mo,sha256=bBj6dvhZSpxojLZ0GiMBamh1xiluxAYMt6RHubi9CxU,1092
+django/contrib/redirects/locale/it/LC_MESSAGES/django.po,sha256=NHSVus7ixtrB7JDIrYw22srZcse5i4Z9y8Ply_-Jcts,1390
+django/contrib/redirects/locale/ja/LC_MESSAGES/django.mo,sha256=XSJw3iLK0gYVjZ86MYuV4jfoiN_-WkH--oMK5uW9cs8,1193
+django/contrib/redirects/locale/ja/LC_MESSAGES/django.po,sha256=SlYrmC3arGgS7SL8cCnq7d37P-bQGcmpgUXAwVC2eRw,1510
+django/contrib/redirects/locale/ka/LC_MESSAGES/django.mo,sha256=0aOLKrhUX6YAIMNyt6KES9q2iFk2GupEr76WeGlJMkk,1511
+django/contrib/redirects/locale/ka/LC_MESSAGES/django.po,sha256=AQWIEdhxp55XnJwwHrUxxQaGbLJPmdo1YLeT86IJqnY,1725
+django/contrib/redirects/locale/kab/LC_MESSAGES/django.mo,sha256=Ogx9NXK1Nfw4ctZfp-slIL81ziDX3f4DZ01OkVNY5Tw,699
+django/contrib/redirects/locale/kab/LC_MESSAGES/django.po,sha256=gI6aUPkXH-XzKrStDsMCMNfQKDEc-D1ffqE-Z-ItQuI,1001
+django/contrib/redirects/locale/kk/LC_MESSAGES/django.mo,sha256=KVLc6PKL1MP_Px0LmpoW2lIvgLiSzlvoJ9062F-s3Zw,1261
+django/contrib/redirects/locale/kk/LC_MESSAGES/django.po,sha256=Xoy4mnOT51F_GS1oIO91EAuwt-ZfePKh-sutedo6D_g,1478
+django/contrib/redirects/locale/km/LC_MESSAGES/django.mo,sha256=tcW1s7jvTG0cagtdRNT0jSNkhX-B903LKl7bK31ZvJU,1248
+django/contrib/redirects/locale/km/LC_MESSAGES/django.po,sha256=KJ4h1umpfFLdsWZtsfXoeOl6cUPUD97U4ISWt80UZ2U,1437
+django/contrib/redirects/locale/kn/LC_MESSAGES/django.mo,sha256=24GHcQlEoCDri-98eLtqLbGjtJz9cTPAfYdAijsL5ck,788
+django/contrib/redirects/locale/kn/LC_MESSAGES/django.po,sha256=xkH24itr2fpuCQMGQ3xssOqaN_7KzM-GLy0u00ti27I,1245
+django/contrib/redirects/locale/ko/LC_MESSAGES/django.mo,sha256=_m-8YdcKaUqQ-O-ioyJqlvD3d4pT9KEES-_U5v32tVo,1152
+django/contrib/redirects/locale/ko/LC_MESSAGES/django.po,sha256=6m_YYMBCPXdKzk0mN4MdHzroU78uDRp70B67qMu0Ew8,1564
+django/contrib/redirects/locale/ky/LC_MESSAGES/django.mo,sha256=4jX_g-hledmjWEx0RvY99G5QcBj_mQt_HZzpd000J44,1265
+django/contrib/redirects/locale/ky/LC_MESSAGES/django.po,sha256=yvx21nxsqqVzPyyxX9_rF-oeaY2WszXrG4ZDSZTW6-4,1522
+django/contrib/redirects/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/redirects/locale/lb/LC_MESSAGES/django.po,sha256=Hv1CF9CC78YuVVNpklDtPJDU5-iIUeuXcljewmc9akg,946
+django/contrib/redirects/locale/lt/LC_MESSAGES/django.mo,sha256=reiFMXJnvE4XUosbKjyvUFzl4IKjlJoFK1gVJE9Tbnc,1191
+django/contrib/redirects/locale/lt/LC_MESSAGES/django.po,sha256=G56UIYuuVLgwzHCIj_suHNYPe1z76Y_cauWfGEs4nKI,1448
+django/contrib/redirects/locale/lv/LC_MESSAGES/django.mo,sha256=AbYwFA0e9RUL1zeV8Ha2lfEe8wRED_xgSrrSJ7pcd94,1156
+django/contrib/redirects/locale/lv/LC_MESSAGES/django.po,sha256=HRNSNR0I4CVGCTocVB3nq-pOiKqrb7NfDQpLOEm2WYg,1456
+django/contrib/redirects/locale/mk/LC_MESSAGES/django.mo,sha256=3XGgf2K60LclScPKcgw07TId6x535AW5jtGVJ9lC01A,1353
+django/contrib/redirects/locale/mk/LC_MESSAGES/django.po,sha256=Smsdpid5VByoxvnfzju_XOlp6aTPl8qshFptot3cRYM,1596
+django/contrib/redirects/locale/ml/LC_MESSAGES/django.mo,sha256=IhSkvbgX9xfE4GypOQ7W7SDM-wOOqx1xgSTW7L1JofU,1573
+django/contrib/redirects/locale/ml/LC_MESSAGES/django.po,sha256=9KpXf88GRUB5I51Rj3q9qhvhjHFINuiJ9ig0SZdYE6k,1755
+django/contrib/redirects/locale/mn/LC_MESSAGES/django.mo,sha256=14fdHC_hZrRaA0EAFzBJy8BHj4jMMX6l2e6rLLBtJ8E,1274
+django/contrib/redirects/locale/mn/LC_MESSAGES/django.po,sha256=7_QzUWf5l0P-7gM35p9UW7bOj33NabQq_zSrekUeZsY,1502
+django/contrib/redirects/locale/mr/LC_MESSAGES/django.mo,sha256=KWFQR7X6niKMWIqY93sKtS6o41hsG4pEGLhXwC6MmDI,1530
+django/contrib/redirects/locale/mr/LC_MESSAGES/django.po,sha256=UZp4529Fm4US-Yi5eOlT6Ja7S_s1pc73LqNwEvaxXGw,1687
+django/contrib/redirects/locale/ms/LC_MESSAGES/django.mo,sha256=WUk6hvvHPWuylCGiDvy0MstWoQ1mdmwwfqlms1Nv4Ng,1094
+django/contrib/redirects/locale/ms/LC_MESSAGES/django.po,sha256=bsQDwxqtS5FgPCqTrfm9kw2hH_R2y44DnI5nluUgduc,1255
+django/contrib/redirects/locale/my/LC_MESSAGES/django.mo,sha256=H5-y9A3_1yIXJzC4sSuHqhURxhOlnYEL8Nvc0IF4zUE,549
+django/contrib/redirects/locale/my/LC_MESSAGES/django.po,sha256=MZGNt0jMQA6aHA6OmjvaC_ajvRWfUfDiKkV0j3_E480,1052
+django/contrib/redirects/locale/nb/LC_MESSAGES/django.mo,sha256=pxRtj5VFxTQBbi_mDS05iGoQs4BZ4y6LLJZ9pozJezY,1110
+django/contrib/redirects/locale/nb/LC_MESSAGES/django.po,sha256=ALYXciVa0d0sG70dqjtk17Yh_qwzKAzTXDlEZSU9kc0,1392
+django/contrib/redirects/locale/ne/LC_MESSAGES/django.mo,sha256=TxTnBGIi5k0PKAjADeCuOAJQV5dtzLrsFRXBXtfszWI,1420
+django/contrib/redirects/locale/ne/LC_MESSAGES/django.po,sha256=5b5R-6AlSIQrDyTtcmquoW5xrQRGZwlxZpBpZfVo5t4,1607
+django/contrib/redirects/locale/nl/LC_MESSAGES/django.mo,sha256=Xeh1YbEAu7Lhz07RXPTMDyv7AyWF9Bhe-9oHdWT74mo,1129
+django/contrib/redirects/locale/nl/LC_MESSAGES/django.po,sha256=QuNgrX7w2wO15KPEe3ogVhXbkt0v60EwKmKfD7-PedU,1476
+django/contrib/redirects/locale/nn/LC_MESSAGES/django.mo,sha256=8TQXBF2mzENl7lFpcrsKxkJ4nKySTOgXJM5_I2OD7q8,1143
+django/contrib/redirects/locale/nn/LC_MESSAGES/django.po,sha256=pfrKVQd1wLKKpq-b7CBpc-rZnEEgyZFDSjbipsEiwxM,1344
+django/contrib/redirects/locale/os/LC_MESSAGES/django.mo,sha256=joQ-ibV9_6ctGMNPLZQLCx5fUamRQngs6_LDd_s9sMQ,1150
+django/contrib/redirects/locale/os/LC_MESSAGES/django.po,sha256=ZwFWiuGS9comy7r2kMnKuqaPOvVehVdAAuFvXM5ldxM,1358
+django/contrib/redirects/locale/pa/LC_MESSAGES/django.mo,sha256=MY-OIDNXlZth-ZRoOJ52nlUPg_51_F5k0NBIpc7GZEw,748
+django/contrib/redirects/locale/pa/LC_MESSAGES/django.po,sha256=TPDTK2ZvDyvO1ob8Qfr64QDbHVWAREfEeBO5w9jf63E,1199
+django/contrib/redirects/locale/pl/LC_MESSAGES/django.mo,sha256=9Sc_8aDC8-PADnr4hYdat6iRUXj0QxsWR1RGWKIQP3M,1285
+django/contrib/redirects/locale/pl/LC_MESSAGES/django.po,sha256=RLuSAlWQPvxDGSNHL3j5ohMdf4IZL-g21-_QIuTdY4c,1605
+django/contrib/redirects/locale/pt/LC_MESSAGES/django.mo,sha256=atDhyxfiRH_IqVqPAwVUTmWivKt-rm1AR3sVhXBnSJg,1196
+django/contrib/redirects/locale/pt/LC_MESSAGES/django.po,sha256=xVrw5f_ycVgDyTX-feksfSsGjSz76PSr2Os9tDFBaiA,1449
+django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.mo,sha256=adnRlAeOrULZkdpZGhHbb4D5A-hzJxeYlkfcbarx7pE,1224
+django/contrib/redirects/locale/pt_BR/LC_MESSAGES/django.po,sha256=DLTeZs_Xng3j8bveJizEIBLBjd4lJH_a-TzZxJgtu20,1703
+django/contrib/redirects/locale/ro/LC_MESSAGES/django.mo,sha256=D8FkmV6IxZOn5QAPBu9PwhStBpVQWudU62wKa7ADfJY,1158
+django/contrib/redirects/locale/ro/LC_MESSAGES/django.po,sha256=Z_-pDi2-A7_KXrEQtFlAJ_KLO0vXFKCbMphsNlqfNJk,1477
+django/contrib/redirects/locale/ru/LC_MESSAGES/django.mo,sha256=IvO0IXq1xuX0wpo2hV8po1AMifLS3ElGyQal0vmC_Jw,1457
+django/contrib/redirects/locale/ru/LC_MESSAGES/django.po,sha256=FHb4L3RMVV5ajxGj9y6ZymPtO_XjZrhHmvCZBPwwzmQ,1762
+django/contrib/redirects/locale/sk/LC_MESSAGES/django.mo,sha256=TTgi-SVyS9nbBCsI6NPbg-QA-GMc_-ciYewOUHDb1bM,1222
+django/contrib/redirects/locale/sk/LC_MESSAGES/django.po,sha256=yDuSGdVfHhsorxQNQ6S7ocyJfrI07pcLzyhkvXNCZXk,1506
+django/contrib/redirects/locale/sl/LC_MESSAGES/django.mo,sha256=GAZtOFSUxsOHdXs3AzT40D-3JFWIlNDZU_Z-cMvdaHo,1173
+django/contrib/redirects/locale/sl/LC_MESSAGES/django.po,sha256=gkZTyxNh8L2gNxyLVzm-M1HTiK8KDvughTa2MK9NzWo,1351
+django/contrib/redirects/locale/sq/LC_MESSAGES/django.mo,sha256=qBF68rD7Fyr27aGYYlDeetQrEfxGugtkXxhEB0mQuEA,1179
+django/contrib/redirects/locale/sq/LC_MESSAGES/django.po,sha256=9s38vklGQCDF7WPhCdTa6kiCsWSdhLsB2z4dGt2y31M,1472
+django/contrib/redirects/locale/sr/LC_MESSAGES/django.mo,sha256=OK90avxrpYxBcvPIZ_tDlSZP6PyRCzFg_7h0F_JlMy8,1367
+django/contrib/redirects/locale/sr/LC_MESSAGES/django.po,sha256=Ipi7j7q5N8aNGWmkz5XGlOPqpD46xCLKarfs-lNbKqM,1629
+django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=qYXT0j80c7a5jMsxeezncAL9Gff2Pb7eJz8iTX0TRX4,1210
+django/contrib/redirects/locale/sr_Latn/LC_MESSAGES/django.po,sha256=CL3ij3uGK8UOMggLXf0MctEydLbyi-9zvkXN5Teuu9c,1424
+django/contrib/redirects/locale/sv/LC_MESSAGES/django.mo,sha256=2j_IyOgbM_yED5lF10r7KGguEC2qX58dRIVogWj5PVY,1134
+django/contrib/redirects/locale/sv/LC_MESSAGES/django.po,sha256=lIFNLfEondtzlwlG3tDf3AH59uEotLtj-XdL87c-QUo,1404
+django/contrib/redirects/locale/sw/LC_MESSAGES/django.mo,sha256=qQjxB8Z6uKoNOa3wI6aDiAYLpWhx7z2yI7nEbXtMOXc,1165
+django/contrib/redirects/locale/sw/LC_MESSAGES/django.po,sha256=rAAmAwjvy69tVeB-QeccIS8CMA96XLeWdfRwDy3_QA0,1385
+django/contrib/redirects/locale/ta/LC_MESSAGES/django.mo,sha256=AE6Py2_CV2gQKjKQAa_UgkLT9i61x3i1hegQpRGuZZM,1502
+django/contrib/redirects/locale/ta/LC_MESSAGES/django.po,sha256=ojdq8p4HnwtK0n6By2I6_xuucOpJIobJEGRMGc_TrS8,1700
+django/contrib/redirects/locale/te/LC_MESSAGES/django.mo,sha256=Gtcs4cbgrD7-bSkPKiPbM5DcjONS2fSdHhvWdbs_E1M,467
+django/contrib/redirects/locale/te/LC_MESSAGES/django.po,sha256=RT-t3TjcOLyNQQWljVrIcPWErKssh_HQMyGujloy-EI,939
+django/contrib/redirects/locale/tg/LC_MESSAGES/django.mo,sha256=6e4Pk9vX1csvSz80spVLhNTd3N251JrXaCga9n60AP8,782
+django/contrib/redirects/locale/tg/LC_MESSAGES/django.po,sha256=2Cmle5usoNZBo8nTfAiqCRq3KqN1WKKdc-mogUOJm9I,1177
+django/contrib/redirects/locale/th/LC_MESSAGES/django.mo,sha256=1l6eO0k1KjcmuRJKUS4ZdtJGhAUmUDMAMIeNwEobQqY,1331
+django/contrib/redirects/locale/th/LC_MESSAGES/django.po,sha256=DVVqpGC6zL8Hy8e6P8ZkhKbvcMJmXV5euLxmfoTCtms,1513
+django/contrib/redirects/locale/tk/LC_MESSAGES/django.mo,sha256=NkxO6C7s1HHT1Jrmwad9zaD3pPyW_sPuZz3F2AGUD7M,1155
+django/contrib/redirects/locale/tk/LC_MESSAGES/django.po,sha256=0EQj1I1oNbAovKmF7o2rQ8_QsQiYqEFDab2KlCFw0s0,1373
+django/contrib/redirects/locale/tr/LC_MESSAGES/django.mo,sha256=-qySxKYwxfFO79cBytvzTBeFGdio1wJlM5DeBBfdxns,1133
+django/contrib/redirects/locale/tr/LC_MESSAGES/django.po,sha256=-03z3YMI6tlt12xwFI2lWchOxiIVbkdVRhghaCoMKlk,1408
+django/contrib/redirects/locale/tt/LC_MESSAGES/django.mo,sha256=Hf1JXcCGNwedxy1nVRM_pQ0yUebC-tvOXr7P0h86JyI,1178
+django/contrib/redirects/locale/tt/LC_MESSAGES/django.po,sha256=2WCyBQtqZk-8GXgtu-x94JYSNrryy2QoMnirhiBrgV0,1376
+django/contrib/redirects/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/redirects/locale/udm/LC_MESSAGES/django.po,sha256=xsxlm4itpyLlLdPQRIHLuvTYRvruhM3Ezc9jtp3XSm4,934
+django/contrib/redirects/locale/ug/LC_MESSAGES/django.mo,sha256=qV4UXMJUeNM2vw0LWn-YR9TDn1sQVvnEUcXh7_AX3Jo,1409
+django/contrib/redirects/locale/ug/LC_MESSAGES/django.po,sha256=dilTTU3q5BCYiUIgpjncD3ijPaQgp1l73poSrsZiUUc,1633
+django/contrib/redirects/locale/uk/LC_MESSAGES/django.mo,sha256=QbN1ABfbr2YbZQXz2U4DI-6iTvWoKPrLAn5tGq57G5Y,1569
+django/contrib/redirects/locale/uk/LC_MESSAGES/django.po,sha256=pH9M4ilsJneoHw6E1E3T54QCHGS_i4tlhDc0nbAJP8I,1949
+django/contrib/redirects/locale/ur/LC_MESSAGES/django.mo,sha256=CQkt-yxyAaTd_Aj1ZZC8s5-4fI2TRyTEZ-SYJZgpRrQ,1138
+django/contrib/redirects/locale/ur/LC_MESSAGES/django.po,sha256=CkhmN49PvYTccvlSRu8qGpcbx2C-1aY7K3Lq1VC2fuM,1330
+django/contrib/redirects/locale/uz/LC_MESSAGES/django.mo,sha256=vD0Y920SSsRsLROKFaU6YM8CT5KjQxJcgMh5bZ4Pugo,743
+django/contrib/redirects/locale/uz/LC_MESSAGES/django.po,sha256=G2Rj-6g8Vse2Bp8L_hGIO84S--akagMXj8gSa7F2lK4,1195
+django/contrib/redirects/locale/vi/LC_MESSAGES/django.mo,sha256=BquXycJKh-7-D9p-rGUNnjqzs1d6S1YhEJjFW8_ARFA,1106
+django/contrib/redirects/locale/vi/LC_MESSAGES/django.po,sha256=xsCASrGZNbQk4d1mhsTZBcCpPJ0KO6Jr4Zz1wfnL67s,1301
+django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=iftb_HccNV383_odHbB6Tikn2h7EtP_9QK-Plq2xwTY,1100
+django/contrib/redirects/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xZmfuCEYx7ou_qvtxBcBly5mBmkSBEhnx0xqJj3nvMw,1490
+django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=Dj3gCstbzcxZyR6iL-U_ridpKcyDI8UIAohw8Rq82bM,1108
+django/contrib/redirects/locale/zh_Hant/LC_MESSAGES/django.po,sha256=UvNH_gQtAhWqN-d3qGOB3nuqrKqFhxjIGu09WsZ7_oQ,1413
+django/contrib/redirects/middleware.py,sha256=ydqidqi5JTaoguEFQBRzLEkU3HeiohgVsFglHUE-HIU,1921
+django/contrib/redirects/migrations/0001_initial.py,sha256=0mXB5TgK_fwYbmbB_e7tKSjgOvpHWnZXg0IFcVtnmfU,2101
+django/contrib/redirects/migrations/0002_alter_redirect_new_path_help_text.py,sha256=RXPdSbYewnW1bjjXxNqUIL-qIeSxdBUehBp0BjfRl8o,635
+django/contrib/redirects/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/redirects/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/redirects/migrations/__pycache__/0002_alter_redirect_new_path_help_text.cpython-311.pyc,,
+django/contrib/redirects/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/redirects/models.py,sha256=KJ6mj0BS243BNPKp26K7OSqcT9j49FPth5m0gNWWxFM,1083
+django/contrib/sessions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sessions/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/apps.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/base_session.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/exceptions.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/models.cpython-311.pyc,,
+django/contrib/sessions/__pycache__/serializers.cpython-311.pyc,,
+django/contrib/sessions/apps.py,sha256=5WIMqa3ymqEvYMnFHe3uWZB8XSijUF_NSgaorRD50Lg,194
+django/contrib/sessions/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sessions/backends/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/base.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/cache.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/cached_db.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/db.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/file.cpython-311.pyc,,
+django/contrib/sessions/backends/__pycache__/signed_cookies.cpython-311.pyc,,
+django/contrib/sessions/backends/base.py,sha256=uw4jDJHvBQLI1XJCru-_fYZ2Pzfz1U-iiN8sJxNNaVs,16958
+django/contrib/sessions/backends/cache.py,sha256=m9WMB8we8T1j0k9rHP9_7nBuGzDVap3rGMjoM7N5Xe4,4674
+django/contrib/sessions/backends/cached_db.py,sha256=m348hgYLr-rl760T-Yxm2FJmQ6vbI-nZ2vi5QhIybCI,4148
+django/contrib/sessions/backends/db.py,sha256=qoFg94ju0_KtsPUgFCiKAvxbMOXc1YdGAfjktn00nyA,6907
+django/contrib/sessions/backends/file.py,sha256=FtK6zcbQGwLxtINvqTRHNovLHTDuyk61Y7zwNndSUyg,8200
+django/contrib/sessions/backends/signed_cookies.py,sha256=Al_HQ7OnDs77U9AgTcjN5VUVst5dTP-ZUbhuj6Bgsk0,3218
+django/contrib/sessions/base_session.py,sha256=euTO04sxDEk0lovU38a2TLYXJBA-g6nze9asqK2PoNU,1491
+django/contrib/sessions/exceptions.py,sha256=KhkhXiFwfUflSP_t6wCLOEXz1YjBRTKVNbrLmGhOTLo,359
+django/contrib/sessions/locale/af/LC_MESSAGES/django.mo,sha256=0DS0pgVrMN-bUimDfesgHs8Lgr0loz2c6nJdz58RxyQ,717
+django/contrib/sessions/locale/af/LC_MESSAGES/django.po,sha256=ZJRLBshQCAiTTAUycdB3MZIadLeHR5LxbSlDvSWLnEo,838
+django/contrib/sessions/locale/ar/LC_MESSAGES/django.mo,sha256=yoepqaR68PTGLx--cAOzP94Sqyl5xIYpeQ0IFWgY380,846
+django/contrib/sessions/locale/ar/LC_MESSAGES/django.po,sha256=ZgwtBYIdtnqp_8nKHXF1NVJFzQU81-3yv9b7STrQHMc,995
+django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=_iSasR22CxvNWfei6aE_24woPhhhvNzQl5FUO_649dc,817
+django/contrib/sessions/locale/ar_DZ/LC_MESSAGES/django.po,sha256=vop5scstamgFSnO_FWXCEnI7R1N26t7jy_mZUAfETcY,978
+django/contrib/sessions/locale/ast/LC_MESSAGES/django.mo,sha256=hz2m-PkrHby2CKfIOARj6kCzisT-Vs0syfDSTx_iVVw,702
+django/contrib/sessions/locale/ast/LC_MESSAGES/django.po,sha256=M90j1Nx6oDJ16hguUkfKYlyb5OymUeZ5xzPixWxSC7I,846
+django/contrib/sessions/locale/az/LC_MESSAGES/django.mo,sha256=_4XcYdtRasbCjRoaWGoULsXX2cEa--KdRdqbnGoaRuM,731
+django/contrib/sessions/locale/az/LC_MESSAGES/django.po,sha256=qYd7vz6A-hHQNwewzI6wEsxRVLdoc2xLGm1RPW0Hxc4,891
+django/contrib/sessions/locale/be/LC_MESSAGES/django.mo,sha256=FHZ72QuOd-vAOjOXisLs4CaEk7uZuzjO_EfUSB6754M,854
+django/contrib/sessions/locale/be/LC_MESSAGES/django.po,sha256=tHsYVn3XNTcukB0SrHUWP1iV763rrQHCimOyJHRPiek,1023
+django/contrib/sessions/locale/bg/LC_MESSAGES/django.mo,sha256=fFZ8EgRlJ1Z-IP8gPtsUXAnqVHbqQRZpYv6PLWNlNVA,759
+django/contrib/sessions/locale/bg/LC_MESSAGES/django.po,sha256=tXcaDPNmFIv0RU-7sGscRkLCbKEgTBowzVj3AYymarY,997
+django/contrib/sessions/locale/bn/LC_MESSAGES/django.mo,sha256=0BdFN7ou9tmoVG00fCA-frb1Tri3iKz43W7SWal398s,762
+django/contrib/sessions/locale/bn/LC_MESSAGES/django.po,sha256=LycmTel6LXV2HGGN6qzlAfID-cVEQCNnW1Nv_hbWXJk,909
+django/contrib/sessions/locale/br/LC_MESSAGES/django.mo,sha256=6ubPQUyXX08KUssyVZBMMkTlD94mlA6wzsteAMiZ8C8,1027
+django/contrib/sessions/locale/br/LC_MESSAGES/django.po,sha256=LKxGGHOQejKpUp18rCU2FXW8D_H3WuP_P6dPlEluwcE,1201
+django/contrib/sessions/locale/bs/LC_MESSAGES/django.mo,sha256=M7TvlJMrSUAFhp7oUSpUKejnbTuIK-19yiGBBECl9Sc,759
+django/contrib/sessions/locale/bs/LC_MESSAGES/django.po,sha256=Ur0AeRjXUsLgDJhcGiw75hRk4Qe98DzPBOocD7GFDRQ,909
+django/contrib/sessions/locale/ca/LC_MESSAGES/django.mo,sha256=tbaZ48PaihGGD9-2oTKiMFY3kbXjU59nNciCRINOBNk,738
+django/contrib/sessions/locale/ca/LC_MESSAGES/django.po,sha256=tJuJdehKuD9aXOauWOkE5idQhsVsLbeg1Usmc6N_SP0,906
+django/contrib/sessions/locale/ckb/LC_MESSAGES/django.mo,sha256=qTCUlxmStU9w1nXRAc_gRodaN6ojJK_XAxDXoYC5vQI,741
+django/contrib/sessions/locale/ckb/LC_MESSAGES/django.po,sha256=F2bHLL66fWF5_VTM5QvNUFakY7gPRDr1qCjW6AkYxec,905
+django/contrib/sessions/locale/cs/LC_MESSAGES/django.mo,sha256=wEFP4NNaRQDbcbw96UC906jN4rOrlPJMn60VloXr944,759
+django/contrib/sessions/locale/cs/LC_MESSAGES/django.po,sha256=7XkKESwfOmbDRDbUYr1f62-fDOuyI-aCqLGaEiDrmX8,962
+django/contrib/sessions/locale/cy/LC_MESSAGES/django.mo,sha256=GeWVeV2PvgLQV8ecVUA2g3-VvdzMsedgIDUSpn8DByk,774
+django/contrib/sessions/locale/cy/LC_MESSAGES/django.po,sha256=zo18MXtkEdO1L0Q6ewFurx3lsEWTCdh0JpQJTmvw5bY,952
+django/contrib/sessions/locale/da/LC_MESSAGES/django.mo,sha256=7_YecCzfeYQp9zVYt2B7MtjhAAuVb0BcK2D5Qv_uAbg,681
+django/contrib/sessions/locale/da/LC_MESSAGES/django.po,sha256=qX_Oo7niVo57bazlIYFA6bnVmPBclUUTWvZFYNLaG04,880
+django/contrib/sessions/locale/de/LC_MESSAGES/django.mo,sha256=N3kTal0YK9z7Te3zYGLbJmoSB6oWaviWDLGdPlsPa9g,721
+django/contrib/sessions/locale/de/LC_MESSAGES/django.po,sha256=0qnfDeCUQN2buKn6R0MvwhQP05XWxSu-xgvfxvnJe3k,844
+django/contrib/sessions/locale/dsb/LC_MESSAGES/django.mo,sha256=RABl3WZmY6gLh4IqmTUhoBEXygDzjp_5lLF1MU9U5fA,810
+django/contrib/sessions/locale/dsb/LC_MESSAGES/django.po,sha256=cItKs5tASYHzDxfTg0A_dgBQounpzoGyOEFn18E_W_g,934
+django/contrib/sessions/locale/el/LC_MESSAGES/django.mo,sha256=QbTbmcfgc8_4r5hFrIghDhk2XQ4f8_emKmqupMG2ah0,809
+django/contrib/sessions/locale/el/LC_MESSAGES/django.po,sha256=HeaEbpVmFhhrZt2NsZteYaYoeo8FYKZF0IoNJwtzZkc,971
+django/contrib/sessions/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/sessions/locale/en/LC_MESSAGES/django.po,sha256=afaM-IIUZtcRZduojUTS8tT0w7C4Ya9lXgReOvq_iF0,804
+django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.mo,sha256=FgY1K6IVyQjMjXqVZxcsyWW_Tu5ckfrbmIfNYq5P-_E,693
+django/contrib/sessions/locale/en_AU/LC_MESSAGES/django.po,sha256=cMV15gJq8jNSUzkhn7uyOf2JYMFx7BNH1oFYa1vISnc,853
+django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.mo,sha256=T5NQCTYkpERfP9yKbUvixT0VdBt1zGmGB8ITlkVc420,707
+django/contrib/sessions/locale/en_GB/LC_MESSAGES/django.po,sha256=1ks_VE1qpEfPcyKg0HybkTG0-DTttTHTfUPhQCR53sw,849
+django/contrib/sessions/locale/eo/LC_MESSAGES/django.mo,sha256=eBvYQbZS_WxVV3QCSZAOyHNIljC2ZXxVc4mktUuXVjI,727
+django/contrib/sessions/locale/eo/LC_MESSAGES/django.po,sha256=Ru9xicyTgHWVHh26hO2nQNFRQmwBnYKEagsS8TZRv3E,917
+django/contrib/sessions/locale/es/LC_MESSAGES/django.mo,sha256=jbHSvHjO2OCLlBD66LefocKOEbefWbPhj-l3NugiWuc,734
+django/contrib/sessions/locale/es/LC_MESSAGES/django.po,sha256=fY5WXeONEXHeuBlH0LkvzdZ2CSgbvLZ8BJc429aIbhI,909
+django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.mo,sha256=_8icF2dMUWj4WW967rc5npgndXBAdJrIiz_VKf5D-Rw,694
+django/contrib/sessions/locale/es_AR/LC_MESSAGES/django.po,sha256=AnmvjeOA7EBTJ6wMOkCl8JRLVYRU8KS0egPijcKutns,879
+django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.mo,sha256=UP7ia0gV9W-l0Qq5AS4ZPadJtml8iuzzlS5C9guMgh8,754
+django/contrib/sessions/locale/es_CO/LC_MESSAGES/django.po,sha256=_XeiiRWvDaGjofamsRHr5up_EQvcw0w-GLLeWK27Af8,878
+django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.mo,sha256=MDM0K3xMvyf8ymvAurHYuacpxfG_YfJFyNnp1uuc6yY,756
+django/contrib/sessions/locale/es_MX/LC_MESSAGES/django.po,sha256=Y7VNa16F_yyK7_XJvF36rR2XNW8aBJK4UDweufyXpxE,892
+django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486
+django/contrib/sessions/locale/es_VE/LC_MESSAGES/django.po,sha256=zWjgB0AmsmhX2tjk1PgldttqY56Czz8epOVCaYWXTLU,761
+django/contrib/sessions/locale/et/LC_MESSAGES/django.mo,sha256=aL1jZWourEC7jtjsuBZHD-Gw9lpL6L1SoqjTtzguxD0,737
+django/contrib/sessions/locale/et/LC_MESSAGES/django.po,sha256=VNBYohAOs59jYWkjVMY-v2zwVy5AKrtBbFRJZLwdCFg,899
+django/contrib/sessions/locale/eu/LC_MESSAGES/django.mo,sha256=M9piOB_t-ZnfN6pX-jeY0yWh2S_5cCuo1oGiy7X65A4,728
+django/contrib/sessions/locale/eu/LC_MESSAGES/django.po,sha256=bHdSoknoH0_dy26e93tWVdO4TT7rnCPXlSLPsYAhwyw,893
+django/contrib/sessions/locale/fa/LC_MESSAGES/django.mo,sha256=6DdJcqaYuBnhpFFHR42w-RqML0eQPFMAUEEDY0Redy8,755
+django/contrib/sessions/locale/fa/LC_MESSAGES/django.po,sha256=rklhNf0UFl2bM6mt7x9lWvfzPH4XWGbrW9Gc2w-9rzg,922
+django/contrib/sessions/locale/fi/LC_MESSAGES/django.mo,sha256=oAugvlTEvJmG8KsZw09WcfnifYY5oHnGo4lxcxqKeaY,721
+django/contrib/sessions/locale/fi/LC_MESSAGES/django.po,sha256=BVVrjbZZtLGAuZ9HK63p769CbjZFZMlS4BewSMfNMKU,889
+django/contrib/sessions/locale/fr/LC_MESSAGES/django.mo,sha256=aDGYdzx2eInF6IZ-UzPDEJkuYVPnvwVND3qVuSfJNWw,692
+django/contrib/sessions/locale/fr/LC_MESSAGES/django.po,sha256=hARxGdtBOzEZ_iVyzkNvcKlgyM8fOkdXTH3upj2XFYM,893
+django/contrib/sessions/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/sessions/locale/fy/LC_MESSAGES/django.po,sha256=U-VEY4WbmIkmrnPK4Mv-B-pbdtDzusBCVmE8iHyvzFU,751
+django/contrib/sessions/locale/ga/LC_MESSAGES/django.mo,sha256=zTrydRCRDiUQwF4tQ3cN1-5w36i6KptagsdA5_SaGy0,747
+django/contrib/sessions/locale/ga/LC_MESSAGES/django.po,sha256=Qpk1JaUWiHSEPdgBk-O_KfvGzwlZ4IAA6c6-nsJe400,958
+django/contrib/sessions/locale/gd/LC_MESSAGES/django.mo,sha256=Yi8blY_fUD5YTlnUD6YXZvv1qjm4QDriO6CJIUe1wIk,791
+django/contrib/sessions/locale/gd/LC_MESSAGES/django.po,sha256=fEa40AUqA5vh743Zqv0FO2WxSFXGYk4IzUR4BoaP-C4,890
+django/contrib/sessions/locale/gl/LC_MESSAGES/django.mo,sha256=lC8uu-mKxt48DLzRvaxz-mOqR0ZfvEuaBI1Hi_nuMpo,692
+django/contrib/sessions/locale/gl/LC_MESSAGES/django.po,sha256=L34leIfwmRJoqX0jfefbNHz0CmON5cSaRXeh7pmFqCY,943
+django/contrib/sessions/locale/he/LC_MESSAGES/django.mo,sha256=qhgjSWfGAOgl-i7iwzSrJttx88xcj1pB0iLkEK64mJU,809
+django/contrib/sessions/locale/he/LC_MESSAGES/django.po,sha256=KvQG6wOpokM-2JkhWnB2UUQacy5Ie1402K_pH2zUOu0,1066
+django/contrib/sessions/locale/hi/LC_MESSAGES/django.mo,sha256=naqxOjfAnNKy3qqnUG-4LGf9arLRJpjyWWmSj5tEfao,759
+django/contrib/sessions/locale/hi/LC_MESSAGES/django.po,sha256=WnTGvOz9YINMcUJg2BYCaHceZLKaTfsba_0AZtRNP38,951
+django/contrib/sessions/locale/hr/LC_MESSAGES/django.mo,sha256=axyJAmXmadpFxIhu8rroVD8NsGGadQemh9-_ZDo7L1U,819
+django/contrib/sessions/locale/hr/LC_MESSAGES/django.po,sha256=3G-qOYXBO-eMWWsa5LwTCW9M1oF0hlWgEz7hAK8hJqI,998
+django/contrib/sessions/locale/hsb/LC_MESSAGES/django.mo,sha256=_OXpOlCt4KU0i65Iw4LMjSsyn__E9wH20l9vDNBSEzw,805
+django/contrib/sessions/locale/hsb/LC_MESSAGES/django.po,sha256=yv3vX_UCDrdl07GQ79Mnytwgz2oTvySYOG9enzMpFJA,929
+django/contrib/sessions/locale/hu/LC_MESSAGES/django.mo,sha256=ik40LnsWkKYEUioJB9e11EX9XZ-qWMa-S7haxGhM-iI,727
+django/contrib/sessions/locale/hu/LC_MESSAGES/django.po,sha256=1-UWEEsFxRwmshP2x4pJbitWIGZ1YMeDDxnAX-XGNxc,884
+django/contrib/sessions/locale/hy/LC_MESSAGES/django.mo,sha256=x6VQWGdidRJFUJme-6jf1pcitktcQHQ7fhmw2UBej1Q,815
+django/contrib/sessions/locale/hy/LC_MESSAGES/django.po,sha256=eRMa3_A2Vx195mx2lvza1v-wcEcEeMrU63f0bgPPFjc,893
+django/contrib/sessions/locale/ia/LC_MESSAGES/django.mo,sha256=-o4aQPNJeqSDRSLqcKuYvJuKNBbFqDJDe3IzHgSgZeQ,744
+django/contrib/sessions/locale/ia/LC_MESSAGES/django.po,sha256=PULLDd3QOIU03kgradgQzT6IicoPhLPlUvFgRl-tGbA,869
+django/contrib/sessions/locale/id/LC_MESSAGES/django.mo,sha256=mOaIF0NGOO0-dt-nhHL-i3cfvt9-JKTbyUkFWPqDS9Y,705
+django/contrib/sessions/locale/id/LC_MESSAGES/django.po,sha256=EA6AJno3CaFOO-dEU9VQ_GEI-RAXS0v0uFqn1RJGjEs,914
+django/contrib/sessions/locale/io/LC_MESSAGES/django.mo,sha256=_rqAY6reegqmxmWc-pW8_kDaG9zflZuD-PGOVFsjRHo,683
+django/contrib/sessions/locale/io/LC_MESSAGES/django.po,sha256=tbKMxGuB6mh_m0ex9rO9KkTy6qyuRW2ERrQsGwmPiaw,840
+django/contrib/sessions/locale/is/LC_MESSAGES/django.mo,sha256=3QeMl-MCnBie9Sc_aQ1I7BrBhkbuArpoSJP95UEs4lg,706
+django/contrib/sessions/locale/is/LC_MESSAGES/django.po,sha256=LADIFJv8L5vgDJxiQUmKPSN64zzzrIKImh8wpLBEVWQ,853
+django/contrib/sessions/locale/it/LC_MESSAGES/django.mo,sha256=qTY3O-0FbbpZ5-BR5xOJWP0rlnIkBZf-oSawW_YJWlk,726
+django/contrib/sessions/locale/it/LC_MESSAGES/django.po,sha256=hEv0iTGLuUvEBk-lF-w7a9P3ifC0-eiodNtuSc7cXhg,869
+django/contrib/sessions/locale/ja/LC_MESSAGES/django.mo,sha256=hbv9FzWzXRIGRh_Kf_FLQB34xfmPU_9RQKn9u1kJqGU,757
+django/contrib/sessions/locale/ja/LC_MESSAGES/django.po,sha256=ppGx5ekOWGgDF3vzyrWsqnFUZ-sVZZhiOhvAzl_8v54,920
+django/contrib/sessions/locale/ka/LC_MESSAGES/django.mo,sha256=VZ-ysrDbea_-tMV-1xtlTeW62IAy2RWR94V3Y1iSh4U,803
+django/contrib/sessions/locale/ka/LC_MESSAGES/django.po,sha256=hqiWUiATlrc7qISF7ndlelIrFwc61kzhKje9l-DY6V4,955
+django/contrib/sessions/locale/kab/LC_MESSAGES/django.mo,sha256=W_yE0NDPJrVznA2Qb89VuprJNwyxSg59ovvjkQe6mAs,743
+django/contrib/sessions/locale/kab/LC_MESSAGES/django.po,sha256=FJeEuv4P3NT_PpWHEUsQVSWXu65nYkJ6Z2AlbSKb0ZA,821
+django/contrib/sessions/locale/kk/LC_MESSAGES/django.mo,sha256=FROGz_MuIhsIU5_-EYV38cHnRZrc3-OxxkBeK0ax9Rk,810
+django/contrib/sessions/locale/kk/LC_MESSAGES/django.po,sha256=P-oHO3Oi3V_RjWHjEAHdTrDfTwKP2xh3yJh7BlXL1VQ,1029
+django/contrib/sessions/locale/km/LC_MESSAGES/django.mo,sha256=VOuKsIG2DEeCA5JdheuMIeJlpmAhKrI6lD4KWYqIIPk,929
+django/contrib/sessions/locale/km/LC_MESSAGES/django.po,sha256=09i6Nd_rUK7UqFpJ70LMXTR6xS0NuGETRLe0CopMVBk,1073
+django/contrib/sessions/locale/kn/LC_MESSAGES/django.mo,sha256=TMZ71RqNR6zI20BeozyLa9cjYrWlvfIajGDfpnHd3pQ,810
+django/contrib/sessions/locale/kn/LC_MESSAGES/django.po,sha256=whdM8P74jkAAHvjgJN8Q77dYd9sIsf_135ID8KBu-a8,990
+django/contrib/sessions/locale/ko/LC_MESSAGES/django.mo,sha256=MAgc0EkV0IrWjC6bSvKiyRlGXtgjhZF-ltTuyAFNDUk,653
+django/contrib/sessions/locale/ko/LC_MESSAGES/django.po,sha256=Fn9KkX9fEOKu2WjUYsP_xHEBbdoDeFHSoE096ctnFFc,874
+django/contrib/sessions/locale/ky/LC_MESSAGES/django.mo,sha256=ME7YUgKOYQz9FF_IdrqHImieEONDrkcn4T3HxTZKSV0,742
+django/contrib/sessions/locale/ky/LC_MESSAGES/django.po,sha256=JZHTs9wYmlWzilRMyp-jZWFSzGxWtPiQefPmLL9yhtM,915
+django/contrib/sessions/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/sessions/locale/lb/LC_MESSAGES/django.po,sha256=3igeAnQjDg6D7ItBkQQhyBoFJOZlBxT7NoZiExwD-Fo,749
+django/contrib/sessions/locale/lt/LC_MESSAGES/django.mo,sha256=L9w8-qxlDlCqR_2P0PZegfhok_I61n0mJ1koJxzufy4,786
+django/contrib/sessions/locale/lt/LC_MESSAGES/django.po,sha256=dEefLGtg5flFr_v4vHS5HhK1kxx9WYWTw98cvEn132M,1023
+django/contrib/sessions/locale/lv/LC_MESSAGES/django.mo,sha256=exEzDUNwNS0GLsUkKPu_SfqBxU7T6VRA_T2schIQZ88,753
+django/contrib/sessions/locale/lv/LC_MESSAGES/django.po,sha256=fBgQEbsGg1ECVm1PFDrS2sfKs2eqmsqrSYzx9ELotNQ,909
+django/contrib/sessions/locale/mk/LC_MESSAGES/django.mo,sha256=4oTWp8-qzUQBiqG32hNieABgT3O17q2C4iEhcFtAxLA,816
+django/contrib/sessions/locale/mk/LC_MESSAGES/django.po,sha256=afApb5YRhPXUWR8yF_TTym73u0ov7lWiwRda1-uNiLY,988
+django/contrib/sessions/locale/ml/LC_MESSAGES/django.mo,sha256=tff5TsHILSV1kAAB3bzHQZDB9fgMglZJTofzCunGBzc,854
+django/contrib/sessions/locale/ml/LC_MESSAGES/django.po,sha256=eRkeupt42kUey_9vJmlH8USshnXPZ8M7aYHq88u-5iY,1016
+django/contrib/sessions/locale/mn/LC_MESSAGES/django.mo,sha256=CcCH2ggVYrD29Q11ZMthcscBno2ePkQDbZfoYquTRPM,784
+django/contrib/sessions/locale/mn/LC_MESSAGES/django.po,sha256=nvcjbJzXiDvWFXrM5CxgOQIq8XucsZEUVdYkY8LnCRE,992
+django/contrib/sessions/locale/mr/LC_MESSAGES/django.mo,sha256=rFOGgJ9q9AUlEV_XT-Sycs9eaDtD9so7ZNBTkI-E-Ew,768
+django/contrib/sessions/locale/mr/LC_MESSAGES/django.po,sha256=ZMojWauBzqXR7YSTJ5eAVAX4Xqbv6WEoYOpNL4GQaqU,907
+django/contrib/sessions/locale/ms/LC_MESSAGES/django.mo,sha256=rFi4D_ZURYUPjs5AqJ66bW70yL7AekAKWnrZRBvGPiE,649
+django/contrib/sessions/locale/ms/LC_MESSAGES/django.po,sha256=nZuJ_D0JZUzmGensLa7tSgzbBo05qgQcuHmte2oU6WQ,786
+django/contrib/sessions/locale/my/LC_MESSAGES/django.mo,sha256=8zzzyfJYok969YuAwDUaa6YhxaSi3wcXy3HRNXDb_70,872
+django/contrib/sessions/locale/my/LC_MESSAGES/django.po,sha256=mfs0zRBI0tugyyEfXBZzZ_FMIohydq6EYPZGra678pw,997
+django/contrib/sessions/locale/nb/LC_MESSAGES/django.mo,sha256=hfJ1NCFgcAAtUvNEpaZ9b31PyidHxDGicifUWANIbM8,717
+django/contrib/sessions/locale/nb/LC_MESSAGES/django.po,sha256=yXr6oYuiu01oELdQKuztQFWz8x5C2zS5OzEfU9MHJsU,908
+django/contrib/sessions/locale/ne/LC_MESSAGES/django.mo,sha256=slFgMrqGVtLRHdGorLGPpB09SM92_WnbnRR0rlpNlPQ,802
+django/contrib/sessions/locale/ne/LC_MESSAGES/django.po,sha256=1vyoiGnnaB8f9SFz8PGfzpw6V_NoL78DQwjjnB6fS98,978
+django/contrib/sessions/locale/nl/LC_MESSAGES/django.mo,sha256=84BTlTyxa409moKbQMFyJisI65w22p09qjJHBAmQe-g,692
+django/contrib/sessions/locale/nl/LC_MESSAGES/django.po,sha256=smRr-QPGm6h6hdXxghggWES8b2NnL7yDQ07coUypa8g,909
+django/contrib/sessions/locale/nn/LC_MESSAGES/django.mo,sha256=cytH72J3yS1PURcgyrD8R2PV5d3SbPE73IAqOMBPPVg,667
+django/contrib/sessions/locale/nn/LC_MESSAGES/django.po,sha256=y9l60yy_W3qjxWzxgJg5VgEH9KAIHIQb5hv7mgnep9w,851
+django/contrib/sessions/locale/os/LC_MESSAGES/django.mo,sha256=xVux1Ag45Jo9HQBbkrRzcWrNjqP09nMQl16jIh0YVlo,732
+django/contrib/sessions/locale/os/LC_MESSAGES/django.po,sha256=1hG5Vsz2a2yW05_Z9cTNrBKtK9VRPZuQdx4KJ_0n98o,892
+django/contrib/sessions/locale/pa/LC_MESSAGES/django.mo,sha256=qEx4r_ONwXK1-qYD5uxxXEQPqK5I6rf38QZoUSm7UVA,771
+django/contrib/sessions/locale/pa/LC_MESSAGES/django.po,sha256=M7fmVGP8DtZGEuTV3iJhuWWqILVUTDZvUey_mrP4_fM,918
+django/contrib/sessions/locale/pl/LC_MESSAGES/django.mo,sha256=F9CQb7gQ1ltP6B82JNKu8IAsTdHK5TNke0rtDIgNz3c,828
+django/contrib/sessions/locale/pl/LC_MESSAGES/django.po,sha256=C_MJBB-vwTZbx-t4-mzun-RxHhdOVv04b6xrWdnTv8E,1084
+django/contrib/sessions/locale/pt/LC_MESSAGES/django.mo,sha256=dlJF7hF4GjLmQPdAJhtf-FCKX26XsOmZlChOcxxIqPk,738
+django/contrib/sessions/locale/pt/LC_MESSAGES/django.po,sha256=cOycrw3HCHjSYBadpalyrg5LdRTlqZCTyMh93GOQ8O0,896
+django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.mo,sha256=XHNF5D8oXIia3e3LYwxd46a2JOgDc_ykvc8yuo21fT0,757
+django/contrib/sessions/locale/pt_BR/LC_MESSAGES/django.po,sha256=K_zxKaUKngWPFpvHgXOcymJEsiONSw-OrVrroRXmUUk,924
+django/contrib/sessions/locale/ro/LC_MESSAGES/django.mo,sha256=WR9I9Gum_pq7Qg2Gzhf-zAv43OwR_uDtsbhtx4Ta5gE,776
+django/contrib/sessions/locale/ro/LC_MESSAGES/django.po,sha256=fEgVxL_0Llnjspu9EsXBf8AVL0DGdfF7NgV88G7WN1E,987
+django/contrib/sessions/locale/ru/LC_MESSAGES/django.mo,sha256=n-8vXR5spEbdfyeWOYWC_6kBbAppNoRrWYgqKFY6gJA,913
+django/contrib/sessions/locale/ru/LC_MESSAGES/django.po,sha256=sNqNGdoof6eXzFlh4YIp1O54MdDOAFDjD3GvAFsNP8k,1101
+django/contrib/sessions/locale/sk/LC_MESSAGES/django.mo,sha256=Yntm624Wt410RwuNPU1c-WwQoyrRrBs69VlKMlNUHeQ,766
+django/contrib/sessions/locale/sk/LC_MESSAGES/django.po,sha256=wt7BJk6RpFogJ2Wwa9Mh0mJi9YMpNYKTUSDuDuv1Ong,975
+django/contrib/sessions/locale/sl/LC_MESSAGES/django.mo,sha256=EE6mB8BiYRyAxK6qzurRWcaYVs96FO_4rERYQdtIt3k,770
+django/contrib/sessions/locale/sl/LC_MESSAGES/django.po,sha256=KTjBWyvaNCHbpV9K6vbnavwxxXqf2DlIqVPv7MVFcO8,928
+django/contrib/sessions/locale/sq/LC_MESSAGES/django.mo,sha256=eRaTy3WOC76EYLtMSD4xtJj2h8eE4W-TS4VvCVxI5bw,683
+django/contrib/sessions/locale/sq/LC_MESSAGES/django.po,sha256=9pzp7834LQKafe5fJzC4OKsAd6XfgtEQl6K6hVLaBQM,844
+django/contrib/sessions/locale/sr/LC_MESSAGES/django.mo,sha256=ZDBOYmWIoSyDeT0nYIIFeMtW5jwpr257CbdTZlkVeRQ,855
+django/contrib/sessions/locale/sr/LC_MESSAGES/django.po,sha256=OXQOYeac0ghuzLrwaErJGr1FczuORTu2yroFX5hvRnk,1027
+django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=f3x9f9hTOsJltghjzJMdd8ueDwzxJex6zTXsU-_Hf_Y,757
+django/contrib/sessions/locale/sr_Latn/LC_MESSAGES/django.po,sha256=HKjo7hjSAvgrIvlI0SkgF3zxz8TtKWyBT51UGNhDwek,946
+django/contrib/sessions/locale/sv/LC_MESSAGES/django.mo,sha256=SGbr0K_5iAMA22MfseAldMDgLSEBrI56pCtyV8tMAPc,707
+django/contrib/sessions/locale/sv/LC_MESSAGES/django.po,sha256=vraY3915wBYGeYu9Ro0-TlBeLWqGZP1fbckLv8y47Ys,853
+django/contrib/sessions/locale/sw/LC_MESSAGES/django.mo,sha256=Edhqp8yuBnrGtJqPO7jxobeXN4uU5wKSLrOsFO1F23k,743
+django/contrib/sessions/locale/sw/LC_MESSAGES/django.po,sha256=iY4rN4T-AA2FBQA7DiWWFvrclqKiDYQefqwwVw61-f8,858
+django/contrib/sessions/locale/ta/LC_MESSAGES/django.mo,sha256=qLIThhFQbJKc1_UVr7wVIm1rJfK2rO5m84BCB_oKq7s,801
+django/contrib/sessions/locale/ta/LC_MESSAGES/django.po,sha256=bYqtYf9XgP9IKKFJXh0u64JhRhDvPPUliI1J-NeRpKE,945
+django/contrib/sessions/locale/te/LC_MESSAGES/django.mo,sha256=kteZeivEckt4AmAeKgmgouMQo1qqSQrI8M42B16gMnQ,786
+django/contrib/sessions/locale/te/LC_MESSAGES/django.po,sha256=dQgiNS52RHrL6bV9CEO7Jk9lk3YUQrUBDCg_bP2OSZc,980
+django/contrib/sessions/locale/tg/LC_MESSAGES/django.mo,sha256=N6AiKfV47QTlO5Z_r4SQZXVLtouu-NVSwWkePgD17Tc,747
+django/contrib/sessions/locale/tg/LC_MESSAGES/django.po,sha256=wvvDNu060yqlTxy3swM0x3v6QpvCB9DkfNm0Q-kb9Xk,910
+django/contrib/sessions/locale/th/LC_MESSAGES/django.mo,sha256=D41vbkoYMdYPj3587p-c5yytLVi9pE5xvRZEYhZrxPs,814
+django/contrib/sessions/locale/th/LC_MESSAGES/django.po,sha256=43704TUv4ysKhL8T5MowZwlyv1JZrPyVGrpdIyb3r40,988
+django/contrib/sessions/locale/tk/LC_MESSAGES/django.mo,sha256=pT_hpKCwFT60GUXzD_4z8JOhmh1HRnkZj-QSouVEgUA,699
+django/contrib/sessions/locale/tk/LC_MESSAGES/django.po,sha256=trqXxfyIbh4V4szol0pXETmEWRxAAKywPZ9EzVMVE-I,865
+django/contrib/sessions/locale/tr/LC_MESSAGES/django.mo,sha256=STDnYOeO1d9nSCVf7pSkMq8R7z1aeqq-xAuIYjsofuE,685
+django/contrib/sessions/locale/tr/LC_MESSAGES/django.po,sha256=XYKo0_P5xitYehvjMzEw2MTp_Nza-cIXEECV3dA6BmY,863
+django/contrib/sessions/locale/tt/LC_MESSAGES/django.mo,sha256=Q-FGu_ljTsxXO_EWu7zCzGwoqFXkeoTzWSlvx85VLGc,806
+django/contrib/sessions/locale/tt/LC_MESSAGES/django.po,sha256=UC85dFs_1836noZTuZEzPqAjQMFfSvj7oGmEWOGcfCA,962
+django/contrib/sessions/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/sessions/locale/udm/LC_MESSAGES/django.po,sha256=CPml2Fn9Ax_qO5brCFDLPBoTiNdvsvJb1btQ0COwUfY,737
+django/contrib/sessions/locale/ug/LC_MESSAGES/django.mo,sha256=HMwjTByc3HrhFvCt_iOioYZE7JEKLzNlb2DTu6TCgto,748
+django/contrib/sessions/locale/ug/LC_MESSAGES/django.po,sha256=QEdIUuvVMFbOPSCYs6k-61rBwmTUXFCcR1pKn53dXtQ,864
+django/contrib/sessions/locale/uk/LC_MESSAGES/django.mo,sha256=jzNrLuFghQMCHNRQ0ihnKMCicgear0yWiTOLnvdPszw,841
+django/contrib/sessions/locale/uk/LC_MESSAGES/django.po,sha256=4K2geuGjRpJCtNfGPMhYWZlGxUy5xzIoDKA2jL2iGos,1171
+django/contrib/sessions/locale/ur/LC_MESSAGES/django.mo,sha256=FkGIiHegr8HR8zjVyJ9TTW1T9WYtAL5Mg77nRKnKqWk,729
+django/contrib/sessions/locale/ur/LC_MESSAGES/django.po,sha256=qR4QEBTP6CH09XFCzsPSPg2Dv0LqzbRV_I67HO2OUwk,879
+django/contrib/sessions/locale/uz/LC_MESSAGES/django.mo,sha256=asPu0RhMB_Ui1li-OTVL4qIXnM9XpjsYyx5yJldDYBY,744
+django/contrib/sessions/locale/uz/LC_MESSAGES/django.po,sha256=KsHuLgGJt-KDH0h6ND7JLP2dDJAdLVHSlau4DkkfqA8,880
+django/contrib/sessions/locale/vi/LC_MESSAGES/django.mo,sha256=KriTpT-Hgr10DMnY5Bmbd4isxmSFLmav8vg2tuL2Bb8,679
+django/contrib/sessions/locale/vi/LC_MESSAGES/django.po,sha256=M7S46Q0Q961ykz_5FCAN8SXQ54w8tp4rZeZpy6bPtXs,909
+django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=zsbhIMocgB8Yn1XEBxbIIbBh8tLifvvYNlhe5U61ch8,722
+django/contrib/sessions/locale/zh_Hans/LC_MESSAGES/django.po,sha256=tPshgXjEv6pME4N082ztamJhd5whHB2_IV_egdP-LlQ,889
+django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=l6mWJJ_Lbfn3GsvmblZMtyXzgzqgIgroAOCg3DdzQyI,676
+django/contrib/sessions/locale/zh_Hant/LC_MESSAGES/django.po,sha256=MRV_86xy4ILP46qZtxkHGJwWEvXwF5XAvJ16LNMdx3Q,904
+django/contrib/sessions/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sessions/management/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sessions/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sessions/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sessions/management/commands/__pycache__/clearsessions.cpython-311.pyc,,
+django/contrib/sessions/management/commands/clearsessions.py,sha256=pAiO5o7zgButVlYAV93bPnmiwzWP7V5N7-xPtxSkjJg,661
+django/contrib/sessions/middleware.py,sha256=ziZex9xiqxBYl9SC91i4QIDYuoenz4OoKaNO7sXu8kQ,3483
+django/contrib/sessions/migrations/0001_initial.py,sha256=KqQ44jk-5RNcTdqUv95l_UnoMA8cP5O-0lrjoJ8vabk,1148
+django/contrib/sessions/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sessions/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/sessions/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sessions/models.py,sha256=BguwuQSDzpeTNXhteYRAcspg1rop431tjFeZUVWZNYc,1250
+django/contrib/sessions/serializers.py,sha256=S9oDsUAjFv2MTlLQA6AoehggKyHXpu6-Qnrqybhgvkg,106
+django/contrib/sitemaps/__init__.py,sha256=hZuWQsKCQHfgPOx1GQPETMzTT9oqzcpp2wDMfGiLhp8,6923
+django/contrib/sitemaps/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sitemaps/__pycache__/apps.cpython-311.pyc,,
+django/contrib/sitemaps/__pycache__/views.cpython-311.pyc,,
+django/contrib/sitemaps/apps.py,sha256=xYE-mAs37nL8ZAnv052LhUKVUwGYKB3xyPy4t8pwOpw,249
+django/contrib/sitemaps/templates/sitemap.xml,sha256=L092SHTtwtmNJ_Lj_jLrzHhfI0-OKKIw5fpyOfr4qRs,683
+django/contrib/sitemaps/templates/sitemap_index.xml,sha256=SQf9avfFmnT8j-nLEc8lVQQcdhiy_qhnqjssIMti3oU,360
+django/contrib/sitemaps/views.py,sha256=WoBVQN0jHzjrhuB-_tMdbC8S1Hb9TAnVyL1Kk3CcGM4,4657
+django/contrib/sites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sites/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sites/__pycache__/admin.cpython-311.pyc,,
+django/contrib/sites/__pycache__/apps.cpython-311.pyc,,
+django/contrib/sites/__pycache__/checks.cpython-311.pyc,,
+django/contrib/sites/__pycache__/management.cpython-311.pyc,,
+django/contrib/sites/__pycache__/managers.cpython-311.pyc,,
+django/contrib/sites/__pycache__/middleware.cpython-311.pyc,,
+django/contrib/sites/__pycache__/models.cpython-311.pyc,,
+django/contrib/sites/__pycache__/requests.cpython-311.pyc,,
+django/contrib/sites/__pycache__/shortcuts.cpython-311.pyc,,
+django/contrib/sites/admin.py,sha256=IWvGDQUTDPEUsd-uuxfHxJq4syGtddNKUdkP0nmVUMA,214
+django/contrib/sites/apps.py,sha256=uBLHUyQoSuo1Q7NwLTwlvsTuRU1MXwj4t6lRUnIBdwk,562
+django/contrib/sites/checks.py,sha256=AydGM1G1L9mvmTbNMTXRbZzPbHpIiknkRzLh5uFQLLI,366
+django/contrib/sites/locale/af/LC_MESSAGES/django.mo,sha256=A10bZFMs-wUetVfF5UrFwmuiKnN4ZnlrR4Rx8U4Ut1A,786
+django/contrib/sites/locale/af/LC_MESSAGES/django.po,sha256=O0-ZRvmXvV_34kONuqakuXV5OmYbQ569K1Puj3qQNac,907
+django/contrib/sites/locale/ar/LC_MESSAGES/django.mo,sha256=kLoytp2jvhWn6p1c8kNVua2sYAMnrpS4xnbluHD22Vs,947
+django/contrib/sites/locale/ar/LC_MESSAGES/django.po,sha256=HYA3pA29GktzXBP-soUEn9VP2vkZuhVIXVA8TNPCHCs,1135
+django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.mo,sha256=-ltwY57Th6LNqU3bgOPPP7qWtII5c6rj8Dv8eY7PZ84,918
+django/contrib/sites/locale/ar_DZ/LC_MESSAGES/django.po,sha256=KRTjZ2dFRWVPmE_hC5Hq8eDv3GQs3yQKCgV5ISFmEKk,1079
+django/contrib/sites/locale/ast/LC_MESSAGES/django.mo,sha256=eEvaeiGnZFBPGzKLlRz4M9AHemgJVAb-yNpbpxRqtd0,774
+django/contrib/sites/locale/ast/LC_MESSAGES/django.po,sha256=huBohKzLpdaJRFMFXXSDhDCUOqVqyWXfxb8_lLOkUd0,915
+django/contrib/sites/locale/az/LC_MESSAGES/django.mo,sha256=G_bzPduoIuXAqQHiGWVXq0g9iYki0pvK8Nx-_n-ffAI,727
+django/contrib/sites/locale/az/LC_MESSAGES/django.po,sha256=N2GRj4HQVYcjNZkQpb_YfNsLXplRZbcR4KcbHw7Xb8Q,951
+django/contrib/sites/locale/be/LC_MESSAGES/django.mo,sha256=HGh78mI50ZldBtQ8jId26SI-lSHv4ZLcveRN2J8VzH8,983
+django/contrib/sites/locale/be/LC_MESSAGES/django.po,sha256=W5FhVJKcmd3WHl2Lpd5NJUsc7_sE_1Pipk3CVPoGPa4,1152
+django/contrib/sites/locale/bg/LC_MESSAGES/django.mo,sha256=a2R52umIQIhnzFaFYSRhQ6nBlywE8RGMj2FUOFmyb0A,904
+django/contrib/sites/locale/bg/LC_MESSAGES/django.po,sha256=awB8RMS-qByhNB6eH2f0Oyxb3SH8waLhrZ--rokGfaI,1118
+django/contrib/sites/locale/bn/LC_MESSAGES/django.mo,sha256=cI3a9_L-OC7gtdyRNaGX7A5w0Za0M4ERnYB7rSNkuRU,925
+django/contrib/sites/locale/bn/LC_MESSAGES/django.po,sha256=8ZxYF16bgtTZSZRZFok6IJxUV02vIztoVx2qXqwO8NM,1090
+django/contrib/sites/locale/br/LC_MESSAGES/django.mo,sha256=rI_dIznbwnadZbxOPtQxZ1pGYePNwcNNXt05iiPkchU,1107
+django/contrib/sites/locale/br/LC_MESSAGES/django.po,sha256=7Ein5Xw73DNGGtdd595Bx6ixfSD-dBXZNBUU44pSLuQ,1281
+django/contrib/sites/locale/bs/LC_MESSAGES/django.mo,sha256=bDeqQNme586LnQRQdvOWaLGZssjOoECef3vMq_OCXno,692
+django/contrib/sites/locale/bs/LC_MESSAGES/django.po,sha256=xRTWInDNiLxikjwsjgW_pYjhy24zOro90-909ns9fig,923
+django/contrib/sites/locale/ca/LC_MESSAGES/django.mo,sha256=lEUuQEpgDY3bVWzRONrPzYlojRoNduT16_oYDkkbdfk,791
+django/contrib/sites/locale/ca/LC_MESSAGES/django.po,sha256=aORAoVn69iG1ynmEfnkBzBO-UZOzzbkPVOU-ZvfMtZg,996
+django/contrib/sites/locale/ckb/LC_MESSAGES/django.mo,sha256=Chp4sX73l_RFw4aaf9x67vEO1_cM8eh5c0URKBgMU-Q,843
+django/contrib/sites/locale/ckb/LC_MESSAGES/django.po,sha256=2NPav4574kEwTS_nZTUoVbYxJFzsaC5MdQUCD9iqC6E,1007
+django/contrib/sites/locale/cs/LC_MESSAGES/django.mo,sha256=mnXnpU7sLDTJ3OrIUTnGarPYsupNIUPV4ex_BPWU8fk,827
+django/contrib/sites/locale/cs/LC_MESSAGES/django.po,sha256=ONzFlwzmt7p5jdp6111qQkkevckRrd7GNS0lkDPKu-4,1035
+django/contrib/sites/locale/cy/LC_MESSAGES/django.mo,sha256=70pOie0K__hkmM9oBUaQfVwHjK8Cl48E26kRQL2mtew,835
+django/contrib/sites/locale/cy/LC_MESSAGES/django.po,sha256=FAZrVc72x-4R1A-1qYOBwADoXngC_F6FO8nRjr5-Z6g,1013
+django/contrib/sites/locale/da/LC_MESSAGES/django.mo,sha256=FTOyV1DIH9sMldyjgPw98d2HCotoO4zJ_KY_C9DCB7Y,753
+django/contrib/sites/locale/da/LC_MESSAGES/django.po,sha256=Po1Z6u52CFCyz9hLfK009pMbZzZgHrBse0ViX8wCYm8,957
+django/contrib/sites/locale/de/LC_MESSAGES/django.mo,sha256=5Q6X0_bDQ1ZRpkTy7UpPNzrhmQsB9Q0P1agB7koRyzs,792
+django/contrib/sites/locale/de/LC_MESSAGES/django.po,sha256=aD0wBinqtDUPvBbwtHrLEhFdoVRx1nOh17cJFuWhN3U,980
+django/contrib/sites/locale/dsb/LC_MESSAGES/django.mo,sha256=pPpWYsYp81MTrqCsGF0QnGktZNIll70bdBwSkuVE8go,868
+django/contrib/sites/locale/dsb/LC_MESSAGES/django.po,sha256=IA3G8AKJls20gzfxnrfPzivMNpL8A0zBQBg7OyzrP6g,992
+django/contrib/sites/locale/el/LC_MESSAGES/django.mo,sha256=G9o1zLGysUePGzZRicQ2aIIrc2UXMLTQmdpbrUMfWBU,878
+django/contrib/sites/locale/el/LC_MESSAGES/django.po,sha256=RBi_D-_znYuV6LXfTlSOf1Mvuyl96fIyEoiZ-lgeyWs,1133
+django/contrib/sites/locale/en/LC_MESSAGES/django.mo,sha256=U0OV81NfbuNL9ctF-gbGUG5al1StqN-daB-F-gFBFC8,356
+django/contrib/sites/locale/en/LC_MESSAGES/django.po,sha256=tSjfrNZ_FqLHsXjm5NuTyo5-JpdlPLsPZjFqF2APhy8,817
+django/contrib/sites/locale/en_AU/LC_MESSAGES/django.mo,sha256=G--2j_CR99JjRgVIX2Y_5pDfO7IgIkvK4kYHZtGzpxU,753
+django/contrib/sites/locale/en_AU/LC_MESSAGES/django.po,sha256=Giw634r94MJT1Q3qgqM7gZakQCasRM9Dm7MDkb9JOc8,913
+django/contrib/sites/locale/en_GB/LC_MESSAGES/django.mo,sha256=FbSh7msJdrHsXr0EtDMuODFzSANG_HJ3iBlW8ePpqFs,639
+django/contrib/sites/locale/en_GB/LC_MESSAGES/django.po,sha256=Ib-DIuTWlrN3kg99kLCuqWJVtt1NWaFD4UbDFK6d4KY,862
+django/contrib/sites/locale/eo/LC_MESSAGES/django.mo,sha256=N4KkH12OHxic3pp1okeBhpfDx8XxxpULk3UC219vjWU,792
+django/contrib/sites/locale/eo/LC_MESSAGES/django.po,sha256=ymXSJaFJWGBO903ObqR-ows-p4T3KyUplc_p_3r1uk8,1043
+django/contrib/sites/locale/es/LC_MESSAGES/django.mo,sha256=qLN1uoCdslxdYWgdjgSBi7szllP-mQZtHbuZnNOthsQ,804
+django/contrib/sites/locale/es/LC_MESSAGES/django.po,sha256=QClia2zY39269VSQzkQsLwwukthN6u2JBsjbLNxA1VQ,1066
+django/contrib/sites/locale/es_AR/LC_MESSAGES/django.mo,sha256=_O4rVk7IM2BBlZvjDP2SvTOo8WWqthQi5exQzt027-s,776
+django/contrib/sites/locale/es_AR/LC_MESSAGES/django.po,sha256=RwyNylXbyxdSXn6qRDXd99-GaEPlmr6TicHTUW0boaQ,969
+django/contrib/sites/locale/es_CO/LC_MESSAGES/django.mo,sha256=a4Xje2M26wyIx6Wlg6puHo_OXjiDEy7b0FquT9gbThA,825
+django/contrib/sites/locale/es_CO/LC_MESSAGES/django.po,sha256=9bnRhVD099JzkheO80l65dufjuawsj9aSFgFu5A-lnM,949
+django/contrib/sites/locale/es_MX/LC_MESSAGES/django.mo,sha256=AtGta5jBL9XNBvfSpsCcnDtDhvcb89ALl4hNjSPxibM,809
+django/contrib/sites/locale/es_MX/LC_MESSAGES/django.po,sha256=TnkpQp-7swH-x9cytUJe-QJRd2n_pYMVo0ltDw9Pu8o,991
+django/contrib/sites/locale/es_VE/LC_MESSAGES/django.mo,sha256=59fZBDut-htCj38ZUoqPjhXJPjZBz-xpU9__QFr3kLs,486
+django/contrib/sites/locale/es_VE/LC_MESSAGES/django.po,sha256=8PWXy2L1l67wDIi98Q45j7OpVITr0Lt4zwitAnB-d_o,791
+django/contrib/sites/locale/et/LC_MESSAGES/django.mo,sha256=I2E-49UQsG-F26OeAfnKlfUdA3YCkUSV8ffA-GMSkE0,788
+django/contrib/sites/locale/et/LC_MESSAGES/django.po,sha256=mEfD6EyQ15PPivb5FTlkabt3Lo_XGtomI9XzHrrh34Y,992
+django/contrib/sites/locale/eu/LC_MESSAGES/django.mo,sha256=1HTAFI3DvTAflLJsN7NVtSd4XOTlfoeLGFyYCOX69Ec,807
+django/contrib/sites/locale/eu/LC_MESSAGES/django.po,sha256=NWxdE5-mF6Ak4nPRpCFEgAMIsVDe9YBEZl81v9kEuX8,1023
+django/contrib/sites/locale/fa/LC_MESSAGES/django.mo,sha256=odtsOpZ6noNqwDb18HDc2e6nz3NMsa-wrTN-9dk7d9w,872
+django/contrib/sites/locale/fa/LC_MESSAGES/django.po,sha256=-DirRvcTqcpIy90QAUiCSoNkCDRifqpWSzLriJ4cwQU,1094
+django/contrib/sites/locale/fi/LC_MESSAGES/django.mo,sha256=I5DUeLk1ChUC32q5uzriABCLLJpJKNbEK4BfqylPQzg,786
+django/contrib/sites/locale/fi/LC_MESSAGES/django.po,sha256=LH2sFIKM3YHPoz9zIu10z1DFv1svXphBdOhXNy4a17s,929
+django/contrib/sites/locale/fr/LC_MESSAGES/django.mo,sha256=W7Ne5HqgnRcl42njzbUaDSY059jdhwvr0tgZzecVWD8,756
+django/contrib/sites/locale/fr/LC_MESSAGES/django.po,sha256=u24rHDJ47AoBgcmBwI1tIescAgbjFxov6y906H_uhK0,999
+django/contrib/sites/locale/fy/LC_MESSAGES/django.mo,sha256=YQQy7wpjBORD9Isd-p0lLzYrUgAqv770_56-vXa0EOc,476
+django/contrib/sites/locale/fy/LC_MESSAGES/django.po,sha256=Yh6Lw0QI2Me0zCtlyXraFLjERKqklB6-IJLDTjH_jTs,781
+django/contrib/sites/locale/ga/LC_MESSAGES/django.mo,sha256=RKnHbMHTD4CAxNU6SXQ6jCbgzqDIZZuGOFcdX_baCA4,814
+django/contrib/sites/locale/ga/LC_MESSAGES/django.po,sha256=fqY_eHIE04JxXXyi5ZECLMzcfyG0ZXasxG6ZIErkcrQ,1058
+django/contrib/sites/locale/gd/LC_MESSAGES/django.mo,sha256=df4XIGGD6FIyMUXsb-SoSqNfBFAsRXf4qYtolh_C964,858
+django/contrib/sites/locale/gd/LC_MESSAGES/django.po,sha256=NPKp7A5-y-MR7r8r4WqtcVQJEHCIOP5mLTd0cIfUsug,957
+django/contrib/sites/locale/gl/LC_MESSAGES/django.mo,sha256=tiRYDFC1_V2n1jkEQqhjjQBdZzFkhxzNfHIzG2l3PX4,728
+django/contrib/sites/locale/gl/LC_MESSAGES/django.po,sha256=DNY_rv6w6VrAu3hMUwx3cgLLyH4PFfgaJ9dSKfLBrpI,979
+django/contrib/sites/locale/he/LC_MESSAGES/django.mo,sha256=L3bganfG4gHqp2WXGh4rfWmmbaIxHaGc7-ypAqjSL_E,820
+django/contrib/sites/locale/he/LC_MESSAGES/django.po,sha256=iO3OZwz2aiuAzugkKp5Hxonwdg3kKjBurxR685J2ZMk,1082
+django/contrib/sites/locale/hi/LC_MESSAGES/django.mo,sha256=J4oIS1vJnCvdCCUD4tlTUVyTe4Xn0gKcWedfhH4C0t0,665
+django/contrib/sites/locale/hi/LC_MESSAGES/django.po,sha256=INBrm37jL3okBHuzX8MSN1vMptj77a-4kwQkAyt8w_8,890
+django/contrib/sites/locale/hr/LC_MESSAGES/django.mo,sha256=KjDUhEaOuYSMexcURu2UgfkatN2rrUcAbCUbcpVSInk,876
+django/contrib/sites/locale/hr/LC_MESSAGES/django.po,sha256=-nFMFkVuDoKYDFV_zdNULOqQlnqtiCG57aakN5hqlmg,1055
+django/contrib/sites/locale/hsb/LC_MESSAGES/django.mo,sha256=RyHVb7u9aRn5BXmWzR1gApbZlOioPDJ59ufR1Oo3e8Y,863
+django/contrib/sites/locale/hsb/LC_MESSAGES/django.po,sha256=Aq54y5Gb14bIt28oDDrFltnSOk31Z2YalwaJMDMXfWc,987
+django/contrib/sites/locale/hu/LC_MESSAGES/django.mo,sha256=P--LN84U2BeZAvRVR-OiWl4R02cTTBi2o8XR2yHIwIU,796
+django/contrib/sites/locale/hu/LC_MESSAGES/django.po,sha256=b0VhyFdNaZZR5MH1vFsLL69FmICN8Dz-sTRk0PdK49E,953
+django/contrib/sites/locale/hy/LC_MESSAGES/django.mo,sha256=Hs9XwRHRkHicLWt_NvWvr7nMocmY-Kc8XphhVSAMQRc,906
+django/contrib/sites/locale/hy/LC_MESSAGES/django.po,sha256=MU4hXXGfjXKfYcjxDYzFfsEUIelz5ZzyQLkeSrUQKa0,1049
+django/contrib/sites/locale/ia/LC_MESSAGES/django.mo,sha256=gRMs-W5EiY26gqzwnDXEMbeb1vs0bYZ2DC2a9VCciew,809
+django/contrib/sites/locale/ia/LC_MESSAGES/django.po,sha256=HXZzn9ACIqfR2YoyvpK2FjZ7QuEq_RVZ1kSC4nxMgeg,934
+django/contrib/sites/locale/id/LC_MESSAGES/django.mo,sha256=__2E_2TmVUcbf1ygxtS1lHvkhv8L0mdTAtJpBsdH24Y,791
+django/contrib/sites/locale/id/LC_MESSAGES/django.po,sha256=e5teAHiMjLR8RDlg8q99qtW-K81ltcIiBIdb1MZw2sE,1000
+django/contrib/sites/locale/io/LC_MESSAGES/django.mo,sha256=W-NP0b-zR1oWUZnHZ6fPu5AC2Q6o7nUNoxssgeguUBo,760
+django/contrib/sites/locale/io/LC_MESSAGES/django.po,sha256=G4GUUz3rxoBjWTs-j5RFCvv52AEHiwrCBwom5hYeBSE,914
+django/contrib/sites/locale/is/LC_MESSAGES/django.mo,sha256=lkJgTzDjh5PNfIJpOS2DxKmwVUs9Sl5XwFHv4YdCB30,812
+django/contrib/sites/locale/is/LC_MESSAGES/django.po,sha256=1DVgAcHSZVyDd5xn483oqICIG4ooyZY8ko7A3aDogKM,976
+django/contrib/sites/locale/it/LC_MESSAGES/django.mo,sha256=6NQjjtDMudnAgnDCkemOXinzX0J-eAE5gSq1F8kjusY,795
+django/contrib/sites/locale/it/LC_MESSAGES/django.po,sha256=zxavlLMmp1t1rCDsgrw12kVgxiK5EyR_mOalSu8-ws8,984
+django/contrib/sites/locale/ja/LC_MESSAGES/django.mo,sha256=RNuCS6wv8uK5TmXkSH_7SjsbUFkf24spZfTsvfoTKro,814
+django/contrib/sites/locale/ja/LC_MESSAGES/django.po,sha256=e-cj92VOVc5ycIY6NwyFh5bO7Q9q5vp5CG4dOzd_eWQ,982
+django/contrib/sites/locale/ka/LC_MESSAGES/django.mo,sha256=m8GTqr9j0ijn0YJhvnsYwlk5oYcASKbHg_5hLqZ91TI,993
+django/contrib/sites/locale/ka/LC_MESSAGES/django.po,sha256=1upohcHrQH9T34b6lW09MTtFkk5WswdYOLs2vMAJIuE,1160
+django/contrib/sites/locale/kab/LC_MESSAGES/django.mo,sha256=Utdj5gH5YPeaYMjeMzF-vjqYvYTCipre2qCBkEJSc-Y,808
+django/contrib/sites/locale/kab/LC_MESSAGES/django.po,sha256=d78Z-YanYZkyP5tpasj8oAa5RimVEmce6dlq5vDSscA,886
+django/contrib/sites/locale/kk/LC_MESSAGES/django.mo,sha256=T2dTZ83vBRfQb2dRaKOrhvO00BHQu_2bu0O0k7RsvGA,895
+django/contrib/sites/locale/kk/LC_MESSAGES/django.po,sha256=HvdSFqsumyNurDJ6NKVLjtDdSIg0KZN2v29dM748GtU,1062
+django/contrib/sites/locale/km/LC_MESSAGES/django.mo,sha256=Q7pn5E4qN957j20-iCHgrfI-p8sm3Tc8O2DWeuH0By8,701
+django/contrib/sites/locale/km/LC_MESSAGES/django.po,sha256=TOs76vlCMYOZrdHgXPWZhQH1kTBQTpzsDJ8N4kbJQ7E,926
+django/contrib/sites/locale/kn/LC_MESSAGES/django.mo,sha256=_jl_4_39oe940UMyb15NljGOd45kkCeVNpJy6JvGWTE,673
+django/contrib/sites/locale/kn/LC_MESSAGES/django.po,sha256=cMPXF2DeiQuErhyFMe4i7swxMoqoz1sqtBEXf4Ghx1c,921
+django/contrib/sites/locale/ko/LC_MESSAGES/django.mo,sha256=OSr4OPZCkJqp2ymg32reatGzafM5Qq8fY4D4Dl21Cqk,744
+django/contrib/sites/locale/ko/LC_MESSAGES/django.po,sha256=Lekvcfi1xH8QVwFeSbKU3i26w71ALRy5rbPi3xS03Bw,1052
+django/contrib/sites/locale/ky/LC_MESSAGES/django.mo,sha256=IYxp8jG5iyN81h7YJqOiSQdOH7DnwOiIvelKZfzP6ZA,811
+django/contrib/sites/locale/ky/LC_MESSAGES/django.po,sha256=rxPdgQoBtGQSi5diOy3MXyoM4ffpwdWCc4WE3pjIHEI,927
+django/contrib/sites/locale/lb/LC_MESSAGES/django.mo,sha256=xokesKl7h7k9dXFKIJwGETgwx1Ytq6mk2erBSxkgY-o,474
+django/contrib/sites/locale/lb/LC_MESSAGES/django.po,sha256=1yRdK9Zyh7kcWG7wUexuF9-zxEaKLS2gG3ggVOHbRJ8,779
+django/contrib/sites/locale/lt/LC_MESSAGES/django.mo,sha256=bK6PJtd7DaOgDukkzuqos5ktgdjSF_ffL9IJTQY839s,869
+django/contrib/sites/locale/lt/LC_MESSAGES/django.po,sha256=T-vdVqs9KCz9vMs9FfushgZN9z7LQOT-C86D85H2X8c,1195
+django/contrib/sites/locale/lv/LC_MESSAGES/django.mo,sha256=YNtgcpl5wFQSD6dQjhnigIjRjS0XwgGqcs54VBag6YQ,777
+django/contrib/sites/locale/lv/LC_MESSAGES/django.po,sha256=o3r3lqegShb99bgDBZ69x7SeWv2bP2tCr6Is-V8D76I,1043
+django/contrib/sites/locale/mk/LC_MESSAGES/django.mo,sha256=_YXasRJRWjYmmiEWCrAoqnrKuHHPBG_v_EYTUe16Nfo,885
+django/contrib/sites/locale/mk/LC_MESSAGES/django.po,sha256=AgdIjiSpN0P5o5rr5Ie4sFhnmS5d4doB1ffk91lmOvY,1062
+django/contrib/sites/locale/ml/LC_MESSAGES/django.mo,sha256=axNQVBY0nbR7hYa5bzNtdxB17AUOs2WXhu0Rg--FA3Q,1007
+django/contrib/sites/locale/ml/LC_MESSAGES/django.po,sha256=Sg7hHfK8OMs05ebtTv8gxS6_2kZv-OODwf7okP95Jtk,1169
+django/contrib/sites/locale/mn/LC_MESSAGES/django.mo,sha256=w2sqJRAe0wyz_IuCZ_Ocubs_VHL6wV1BcutWPz0dseQ,867
+django/contrib/sites/locale/mn/LC_MESSAGES/django.po,sha256=Zh_Eao0kLZsrQ8wkL1f-pRrsAtNJOspu45uStq5t8Mo,1127
+django/contrib/sites/locale/mr/LC_MESSAGES/django.mo,sha256=CudEHmP5qNvQ-BfEBOoYMh0qGVw80m-wgeu7eh7zaCQ,884
+django/contrib/sites/locale/mr/LC_MESSAGES/django.po,sha256=FtdCo3O-35EIuOP5OOQU8afWDCbn4ge2lmxjVAYtbGU,1023
+django/contrib/sites/locale/ms/LC_MESSAGES/django.mo,sha256=GToJlS8yDNEy-D3-p7p8ZlWEZYHlSzZAcVIH5nQEkkI,727
+django/contrib/sites/locale/ms/LC_MESSAGES/django.po,sha256=_4l4DCIqSWZtZZNyfzpBA0V-CbAaHe9Ckz06VLbTjFo,864
+django/contrib/sites/locale/my/LC_MESSAGES/django.mo,sha256=jN59e9wRheZYx1A4t_BKc7Hx11J5LJg2wQRd21aQv08,961
+django/contrib/sites/locale/my/LC_MESSAGES/django.po,sha256=EhqYIW5-rX33YjsDsBwfiFb3BK6fZKVc3CRYeJpZX1E,1086
+django/contrib/sites/locale/nb/LC_MESSAGES/django.mo,sha256=AaiHGcmcciy5IMBPVAShcc1OQOETJvBCv7GYHMcIQMA,793
+django/contrib/sites/locale/nb/LC_MESSAGES/django.po,sha256=936zoN1sPSiiq7GuH01umrw8W6BtymYEU3bCfOQyfWE,1000
+django/contrib/sites/locale/ne/LC_MESSAGES/django.mo,sha256=n96YovpBax3T5VZSmIfGmd7Zakn9FJShJs5rvUX7Kf0,863
+django/contrib/sites/locale/ne/LC_MESSAGES/django.po,sha256=B14rhDd8GAaIjxd1sYjxO2pZfS8gAwZ1C-kCdVkRXho,1078
+django/contrib/sites/locale/nl/LC_MESSAGES/django.mo,sha256=ghu-tNPNZuE4sVRDWDVmmmVNPYZLWYm_UPJRqh8wmec,735
+django/contrib/sites/locale/nl/LC_MESSAGES/django.po,sha256=1DCQNzMRhy4vW-KkmlPGy58UR27Np5ilmYhmjaq-8_k,1030
+django/contrib/sites/locale/nn/LC_MESSAGES/django.mo,sha256=eSW8kwbzm2HsE9s9IRCsAo9juimVQjcfdd8rtl3TQJM,731
+django/contrib/sites/locale/nn/LC_MESSAGES/django.po,sha256=OOyvE7iji9hwvz8Z_OxWoKw2e3ptk3dqeqlriXgilSc,915
+django/contrib/sites/locale/os/LC_MESSAGES/django.mo,sha256=Su06FkWMOPzBxoung3bEju_EnyAEAXROoe33imO65uQ,806
+django/contrib/sites/locale/os/LC_MESSAGES/django.po,sha256=4i4rX6aXDUKjq64T02iStqV2V2erUsSVnTivh2XtQeY,963
+django/contrib/sites/locale/pa/LC_MESSAGES/django.mo,sha256=tOHiisOtZrTyIFoo4Ipn_XFH9hhu-ubJLMdOML5ZUgk,684
+django/contrib/sites/locale/pa/LC_MESSAGES/django.po,sha256=ztGyuqvzxRfNjqDG0rMLCu_oQ8V3Dxdsx0WZoYUyNv8,912
+django/contrib/sites/locale/pl/LC_MESSAGES/django.mo,sha256=lo5K262sZmo-hXvcHoBsEDqX8oJEPSxJY5EfRIqHZh0,903
+django/contrib/sites/locale/pl/LC_MESSAGES/django.po,sha256=-kQ49UvXITMy1vjJoN_emuazV_EjNDQnZDERXWNoKvw,1181
+django/contrib/sites/locale/pt/LC_MESSAGES/django.mo,sha256=PrcFQ04lFJ7mIYThXbW6acmDigEFIoLAC0PYk5hfaJs,797
+django/contrib/sites/locale/pt/LC_MESSAGES/django.po,sha256=Aj8hYI9W5nk5uxKHj1oE-b9bxmmuoeXLKaJDPfI2x2o,993
+django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.mo,sha256=BsFfarOR6Qk67fB-tTWgGhuOReJSgjwJBkIzZsv28vo,824
+django/contrib/sites/locale/pt_BR/LC_MESSAGES/django.po,sha256=jfvgelpWn2VQqYe2_CE39SLTsscCckvjuZo6dWII28c,1023
+django/contrib/sites/locale/ro/LC_MESSAGES/django.mo,sha256=oGsZw4_uYpaH6adMxnAuifJgHeZ_ytRZ4rFhiNfRQkQ,857
+django/contrib/sites/locale/ro/LC_MESSAGES/django.po,sha256=tWbWVbjFFELNzSXX4_5ltmzEeEJsY3pKwgEOjgV_W_8,1112
+django/contrib/sites/locale/ru/LC_MESSAGES/django.mo,sha256=bIZJWMpm2O5S6RC_2cfkrp5NXaTU2GWSsMr0wHVEmcw,1016
+django/contrib/sites/locale/ru/LC_MESSAGES/django.po,sha256=jHy5GR05ZSjLmAwaVNq3m0WdhO9GYxge3rDBziqesA8,1300
+django/contrib/sites/locale/sk/LC_MESSAGES/django.mo,sha256=-EYdm14ZjoR8bd7Rv2b5G7UJVSKmZa1ItLsdATR3-Cg,822
+django/contrib/sites/locale/sk/LC_MESSAGES/django.po,sha256=VSRlsq8uk-hP0JI94iWsGX8Al76vvGK4N1xIoFtoRQM,1070
+django/contrib/sites/locale/sl/LC_MESSAGES/django.mo,sha256=JmkpTKJGWgnBM3CqOUriGvrDnvg2YWabIU2kbYAOM4s,845
+django/contrib/sites/locale/sl/LC_MESSAGES/django.po,sha256=qWrWrSz5r3UOVraX08ILt3TTmfyTDGKbJKbTlN9YImU,1059
+django/contrib/sites/locale/sq/LC_MESSAGES/django.mo,sha256=DMLN1ZDJeDnslavjcKloXSXn6IvangVliVP3O6U8dAY,769
+django/contrib/sites/locale/sq/LC_MESSAGES/django.po,sha256=zg3ALcMNZErAS_xFxmtv6TmXZ0vxobX5AzCwOSRSwc8,930
+django/contrib/sites/locale/sr/LC_MESSAGES/django.mo,sha256=8kfi9IPdB2reF8C_eC2phaP6qonboHPwes_w3UgNtzw,935
+django/contrib/sites/locale/sr/LC_MESSAGES/django.po,sha256=A7xaen8H1W4uMBRAqCXT_0KQMoA2-45AUNDfGo9FydI,1107
+django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.mo,sha256=jMXiq18efq0wErJAQfJR1fCnkYcEb7OYXg8sv6kzP0s,815
+django/contrib/sites/locale/sr_Latn/LC_MESSAGES/django.po,sha256=9jkWYcZCTfQr2UZtyvhWDAmEHBrzunJUZcx7FlrFOis,1004
+django/contrib/sites/locale/sv/LC_MESSAGES/django.mo,sha256=1AttMJ2KbQQgJVH9e9KuCKC0UqDHvWSPcKkbPkSLphQ,768
+django/contrib/sites/locale/sv/LC_MESSAGES/django.po,sha256=N7wqrcFb5ZNX83q1ZCkpkP94Lb3ZIBUATDssNT8F51c,1028
+django/contrib/sites/locale/sw/LC_MESSAGES/django.mo,sha256=cWjjDdFXBGmpUm03UDtgdDrREa2r75oMsXiEPT_Bx3g,781
+django/contrib/sites/locale/sw/LC_MESSAGES/django.po,sha256=oOKNdztQQU0sd6XmLI-n3ONmTL7jx3Q0z1YD8673Wi8,901
+django/contrib/sites/locale/ta/LC_MESSAGES/django.mo,sha256=CLO41KsSKqBrgtrHi6fmXaBk-_Y2l4KBLDJctZuZyWY,714
+django/contrib/sites/locale/ta/LC_MESSAGES/django.po,sha256=YsTITHg7ikkNcsP29tDgkZrUdtO0s9PrV1XPu4mgqCw,939
+django/contrib/sites/locale/te/LC_MESSAGES/django.mo,sha256=GmIWuVyIOcoQoAmr2HxCwBDE9JUYEktzYig93H_4v50,687
+django/contrib/sites/locale/te/LC_MESSAGES/django.po,sha256=jbncxU9H3EjXxWPsEoCKJhKi392XXTGvWyuenqLDxps,912
+django/contrib/sites/locale/tg/LC_MESSAGES/django.mo,sha256=wiWRlf3AN5zlFMNyP_rSDZS7M5rHQJ2DTUHARtXjim8,863
+django/contrib/sites/locale/tg/LC_MESSAGES/django.po,sha256=VBGZfJIw40JZe15ghsk-n3qUVX0VH2nFQQhpBy_lk1Y,1026
+django/contrib/sites/locale/th/LC_MESSAGES/django.mo,sha256=dQOp4JoP3gvfsxqEQ73L6F8FgH1YtAA9hYY-Uz5sv6Y,898
+django/contrib/sites/locale/th/LC_MESSAGES/django.po,sha256=auZBoKKKCHZbbh0PaUr9YKiWB1TEYZoj4bE7efAonV8,1077
+django/contrib/sites/locale/tk/LC_MESSAGES/django.mo,sha256=YhzSiVb_NdG1s7G1-SGGd4R3uweZQgnTs3G8Lv9r5z0,755
+django/contrib/sites/locale/tk/LC_MESSAGES/django.po,sha256=sigmzH3Ni2vJwLJ7ba8EeB4wnDXsg8rQRFExZAGycF4,917
+django/contrib/sites/locale/tr/LC_MESSAGES/django.mo,sha256=ryf01jcvvBMGPKkdViieDuor-Lr2KRXZeFF1gPupCOA,758
+django/contrib/sites/locale/tr/LC_MESSAGES/django.po,sha256=L9tsnwxw1BEJD-Nm3m1RAS7ekgdmyC0ETs_mr7tQw1E,1043
+django/contrib/sites/locale/tt/LC_MESSAGES/django.mo,sha256=gmmjXeEQUlBpfDmouhxE-qpEtv-iWdQSobYL5MWprZc,706
+django/contrib/sites/locale/tt/LC_MESSAGES/django.po,sha256=yj49TjwcZ4YrGqnJrKh3neKydlTgwYduto9KsmxI_eI,930
+django/contrib/sites/locale/udm/LC_MESSAGES/django.mo,sha256=CNmoKj9Uc0qEInnV5t0Nt4ZnKSZCRdIG5fyfSsqwky4,462
+django/contrib/sites/locale/udm/LC_MESSAGES/django.po,sha256=vrLZ0XJF63CO3IucbQpd12lxuoM9S8tTUv6cpu3g81c,767
+django/contrib/sites/locale/ug/LC_MESSAGES/django.mo,sha256=EBWMPAJLaxkIPQ5hm_nMRxs7Y0SEEgu6zcDM4jBUAt8,868
+django/contrib/sites/locale/ug/LC_MESSAGES/django.po,sha256=9a0kmoIxg-KMu5faIjcRgWehr3Ild-stVZsBdDrzHV0,1030
+django/contrib/sites/locale/uk/LC_MESSAGES/django.mo,sha256=H4806mPqOoHJFm549F7drzsfkvAXWKmn1w_WVwQx9rk,960
+django/contrib/sites/locale/uk/LC_MESSAGES/django.po,sha256=CJZTOaurDXwpgBiwXx3W7juaF0EctEImPhJdDn8j1xU,1341
+django/contrib/sites/locale/ur/LC_MESSAGES/django.mo,sha256=s6QL8AB_Mp9haXS4n1r9b0YhEUECPxUyPrHTMI3agts,654
+django/contrib/sites/locale/ur/LC_MESSAGES/django.po,sha256=R9tv3qtett8CUGackoHrc5XADeygVKAE0Fz8YzK2PZ4,885
+django/contrib/sites/locale/uz/LC_MESSAGES/django.mo,sha256=OsuqnLEDl9gUAwsmM2s1KH7VD74ID-k7JXcjGhjFlEY,799
+django/contrib/sites/locale/uz/LC_MESSAGES/django.po,sha256=RoaOwLDjkqqIJTuxpuY7eMLo42n6FoYAYutCfMaDk4I,935
+django/contrib/sites/locale/vi/LC_MESSAGES/django.mo,sha256=YOaKcdrN1238Zdm81jUkc2cpxjInAbdnhsSqHP_jQsI,762
+django/contrib/sites/locale/vi/LC_MESSAGES/django.po,sha256=AHcqR2p0fdscLvzbJO_a-CzMzaeRL4LOw4HB9K3noVQ,989
+django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=7D9_pDY5lBRpo1kfzIQL-PNvIg-ofCm7cBHE1-JWlMk,779
+django/contrib/sites/locale/zh_Hans/LC_MESSAGES/django.po,sha256=xI_N00xhV8dWDp4fg5Mmj9ivOBBdHP79T3-JYXPyc5M,946
+django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.mo,sha256=C4ZEuruq2Qnj7Zk-ZUfPWjLHcbNaC0V9MlDs8Go9Ieo,736
+django/contrib/sites/locale/zh_Hant/LC_MESSAGES/django.po,sha256=wGZCUT4Yg8FJLZZ6C_mf5Lly3YkPIhbTBiyTmj5emj8,1055
+django/contrib/sites/management.py,sha256=AElGktvFhWXJtlJwOKpUlIeuv2thkNM8F6boliML84U,1646
+django/contrib/sites/managers.py,sha256=uqD_Cu3P4NCp7VVdGn0NvHfhsZB05MLmiPmgot-ygz4,1994
+django/contrib/sites/middleware.py,sha256=qYcVHsHOg0VxQNS4saoLHkdF503nJR-D7Z01vE0SvUM,309
+django/contrib/sites/migrations/0001_initial.py,sha256=8fY63Z5DwbKQ1HtvAajKDhBLEufigRTsoRazyEf5RU4,1361
+django/contrib/sites/migrations/0002_alter_domain_unique.py,sha256=llK7IKQKnFCK5viHLew2ZMdV9e1sHy0H1blszEu_NKs,549
+django/contrib/sites/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/sites/migrations/__pycache__/0001_initial.cpython-311.pyc,,
+django/contrib/sites/migrations/__pycache__/0002_alter_domain_unique.cpython-311.pyc,,
+django/contrib/sites/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/sites/models.py,sha256=0DWVfDGMYqTZgs_LP6hlVxY3ztbwPzulE9Dos8z6M3Q,3695
+django/contrib/sites/requests.py,sha256=baABc6fmTejNmk8M3fcoQ1cuI2qpJzF8Y47A1xSt8gY,641
+django/contrib/sites/shortcuts.py,sha256=nekVQADJROFYwKCD7flmWDMQ9uLAaaKztHVKl5emuWc,573
+django/contrib/staticfiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/staticfiles/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/apps.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/checks.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/finders.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/handlers.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/storage.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/testing.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/urls.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/utils.cpython-311.pyc,,
+django/contrib/staticfiles/__pycache__/views.cpython-311.pyc,,
+django/contrib/staticfiles/apps.py,sha256=8G9HetU3WBNDfXKfzYfyXjZ--X3loBkkQSB7xfleIl4,504
+django/contrib/staticfiles/checks.py,sha256=FPzYotgRzxqWYDnjIK78bgQAfBSFqeJB04RDVMxlhng,846
+django/contrib/staticfiles/finders.py,sha256=3wnvQkVaO5fwxpOQu5YJasf7SbdvgdJvgzZwf9RtMaY,13547
+django/contrib/staticfiles/handlers.py,sha256=lrPInj8EN9-rxzZxRCF9yeMXtNmlsDC9o9-qJdfFAs0,4043
+django/contrib/staticfiles/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/staticfiles/management/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/staticfiles/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/staticfiles/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/staticfiles/management/commands/__pycache__/collectstatic.cpython-311.pyc,,
+django/contrib/staticfiles/management/commands/__pycache__/findstatic.cpython-311.pyc,,
+django/contrib/staticfiles/management/commands/__pycache__/runserver.cpython-311.pyc,,
+django/contrib/staticfiles/management/commands/collectstatic.py,sha256=FgsNoKY8pa9A4sQytvnyd19qzFYtOkYQ_wBtgDEQLi8,15105
+django/contrib/staticfiles/management/commands/findstatic.py,sha256=P12GF-68bI1csVtjL0J2DwKcEX8JNBeFHmkRgbplnuI,1643
+django/contrib/staticfiles/management/commands/runserver.py,sha256=U_7oCY8LJX5Jn1xlMv-qF4EQoUvlT0ldB5E_0sJmRtw,1373
+django/contrib/staticfiles/storage.py,sha256=7bUaxdgW1OZBnKetXyeplFCUmWcWP2OBC9SxQQ0LVhg,21176
+django/contrib/staticfiles/testing.py,sha256=4X-EtOfXnwkJAyFT8qe4H4sbVTKgM65klLUtY81KHiE,463
+django/contrib/staticfiles/urls.py,sha256=owDM_hdyPeRmxYxZisSMoplwnzWrptI_W8-3K2f7ITA,498
+django/contrib/staticfiles/utils.py,sha256=iPXHA0yMXu37PQwCrq9zjhSzjZf_zEBXJ-dHGsqZoX8,2279
+django/contrib/staticfiles/views.py,sha256=mX70oejBU2FPZ9_idkI0EiRBkTjKcCD7JJ34gYxhM2M,1262
+django/contrib/syndication/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/contrib/syndication/__pycache__/__init__.cpython-311.pyc,,
+django/contrib/syndication/__pycache__/apps.cpython-311.pyc,,
+django/contrib/syndication/__pycache__/views.cpython-311.pyc,,
+django/contrib/syndication/apps.py,sha256=7IpHoihPWtOcA6S4O6VoG0XRlqEp3jsfrNf-D-eluic,203
+django/contrib/syndication/views.py,sha256=wOMBfSAgQPpXHmBePze90AG5nc1JoQ0TX2euZKZD6iY,9377
+django/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/__pycache__/__init__.cpython-311.pyc,,
+django/core/__pycache__/asgi.cpython-311.pyc,,
+django/core/__pycache__/exceptions.cpython-311.pyc,,
+django/core/__pycache__/paginator.cpython-311.pyc,,
+django/core/__pycache__/signals.cpython-311.pyc,,
+django/core/__pycache__/signing.cpython-311.pyc,,
+django/core/__pycache__/validators.cpython-311.pyc,,
+django/core/__pycache__/wsgi.cpython-311.pyc,,
+django/core/asgi.py,sha256=N2L3GS6F6oL-yD9Tu2otspCi2UhbRQ90LEx3ExOP1m0,386
+django/core/cache/__init__.py,sha256=Z1LsL-TNTNVU5X3CLeHeK4Fbfar76n4zwBr4aC9kxuI,1929
+django/core/cache/__pycache__/__init__.cpython-311.pyc,,
+django/core/cache/__pycache__/utils.cpython-311.pyc,,
+django/core/cache/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/cache/backends/__pycache__/__init__.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/base.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/db.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/dummy.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/filebased.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/locmem.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/memcached.cpython-311.pyc,,
+django/core/cache/backends/__pycache__/redis.cpython-311.pyc,,
+django/core/cache/backends/base.py,sha256=trQVVOyBDc8PhDJT-p3ZCgFCImausGKZ2Tc3VRRtSsg,14292
+django/core/cache/backends/db.py,sha256=jrzgzVS0wso8XV9BXquzZPRnHM0d-lIOns_evqPYz_I,11373
+django/core/cache/backends/dummy.py,sha256=fQbFiL72DnVKP9UU4WDsZYaxYKx7FlMOJhtP8aky2ic,1043
+django/core/cache/backends/filebased.py,sha256=-zAJIiABjm25BcpZYJcitSFMkbu0wEYrbBD-SoEb3t0,5795
+django/core/cache/backends/locmem.py,sha256=R9g5g9KG6ak9G12R4RaMnVq7el5i9JXufovshNRMMIc,4036
+django/core/cache/backends/memcached.py,sha256=cB5QRCdr9uocB-tWA1FMBQtWQRqHSRpE7UcIMYI86gI,6776
+django/core/cache/backends/redis.py,sha256=9l35mLpnHDmHxb-uXXcj-VADfmXMY6Nz-z3-pGMLyKc,8010
+django/core/cache/utils.py,sha256=3ZLYgUDD6iLiLMC6vjXKfUQigsoU23ffpJx8e71M4XA,397
+django/core/checks/__init__.py,sha256=n7PPaSV3vubLuB0pperaV1fvaI9ZJ1nEI_CaYyaSSOc,1249
+django/core/checks/__pycache__/__init__.cpython-311.pyc,,
+django/core/checks/__pycache__/async_checks.cpython-311.pyc,,
+django/core/checks/__pycache__/caches.cpython-311.pyc,,
+django/core/checks/__pycache__/commands.cpython-311.pyc,,
+django/core/checks/__pycache__/database.cpython-311.pyc,,
+django/core/checks/__pycache__/files.cpython-311.pyc,,
+django/core/checks/__pycache__/messages.cpython-311.pyc,,
+django/core/checks/__pycache__/model_checks.cpython-311.pyc,,
+django/core/checks/__pycache__/registry.cpython-311.pyc,,
+django/core/checks/__pycache__/templates.cpython-311.pyc,,
+django/core/checks/__pycache__/translation.cpython-311.pyc,,
+django/core/checks/__pycache__/urls.cpython-311.pyc,,
+django/core/checks/async_checks.py,sha256=A9p_jebELrf4fiD6jJtBM6Gvm8cMb03sSuW9Ncx3-vU,403
+django/core/checks/caches.py,sha256=hbcIFD_grXUQR2lGAzzlCX6qMJfkXj02ZDJElgdT5Yg,2643
+django/core/checks/commands.py,sha256=lAgWKYHpUnXaE_-Zs_0LxKKZjM-JmU1UClF-RYWue8I,965
+django/core/checks/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/checks/compatibility/__pycache__/__init__.cpython-311.pyc,,
+django/core/checks/compatibility/__pycache__/django_4_0.cpython-311.pyc,,
+django/core/checks/compatibility/django_4_0.py,sha256=2s7lm9LZ0NrhaYSrw1Y5mMkL5BC68SS-TyD-TKczbEI,657
+django/core/checks/database.py,sha256=sBj-8o4DmpG5QPy1KXgXtZ0FZ0T9xdlT4XBIc70wmEQ,341
+django/core/checks/files.py,sha256=W4yYHiWrqi0d_G6tDWTw79pr2dgJY41rOv7mRpbtp2Q,522
+django/core/checks/messages.py,sha256=vIJtvmeafgwFzwcXaoRBWkcL_t2gLTLjstWSw5xCtjQ,2241
+django/core/checks/model_checks.py,sha256=8aK5uit9yP_lDfdXBJPlz_r-46faP_gIOXLszXqLQqY,8830
+django/core/checks/registry.py,sha256=wjv8H14QNQFQ1LxH7B2-ACE-mt9oM3IWG3R61zIZ-Zw,3482
+django/core/checks/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/checks/security/__pycache__/__init__.cpython-311.pyc,,
+django/core/checks/security/__pycache__/base.cpython-311.pyc,,
+django/core/checks/security/__pycache__/csrf.cpython-311.pyc,,
+django/core/checks/security/__pycache__/sessions.cpython-311.pyc,,
+django/core/checks/security/base.py,sha256=I0Gm446twRIhbRopEmKsdsYW_NdI7_nK_ZV28msRPEo,9140
+django/core/checks/security/csrf.py,sha256=hmFJ4m9oxDGwhDAWedmtpnIYQcI8Mxcge1D6CCoOBbc,2055
+django/core/checks/security/sessions.py,sha256=Qyb93CJeQBM5LLhhrqor4KQJR2tSpFklS-p7WltXcHc,2554
+django/core/checks/templates.py,sha256=leQ8nyjQBzofWFTo6YH9NkLmt582OlG2p8sFw00sbew,296
+django/core/checks/translation.py,sha256=it7VjXf10-HBdCc3z55_lSxwok9qEncdojRBG74d4FA,1990
+django/core/checks/urls.py,sha256=-H945kSYVe_am-2XJI_T4c2V34lySfA6ZHnEEW8USJ8,4917
+django/core/exceptions.py,sha256=BmB6cOsdasVC4UDLQxpLqbmp073ETwx4mbg12EE5HmY,6565
+django/core/files/__init__.py,sha256=Rhz5Jm9BM6gy_nf5yMtswN1VsTIILYUL7Z-5edjh_HI,60
+django/core/files/__pycache__/__init__.cpython-311.pyc,,
+django/core/files/__pycache__/base.cpython-311.pyc,,
+django/core/files/__pycache__/images.cpython-311.pyc,,
+django/core/files/__pycache__/locks.cpython-311.pyc,,
+django/core/files/__pycache__/move.cpython-311.pyc,,
+django/core/files/__pycache__/temp.cpython-311.pyc,,
+django/core/files/__pycache__/uploadedfile.cpython-311.pyc,,
+django/core/files/__pycache__/uploadhandler.cpython-311.pyc,,
+django/core/files/__pycache__/utils.cpython-311.pyc,,
+django/core/files/base.py,sha256=MKNxxgiuwHHwGifpydBgjfZpTzdF7VxCQnVV-w8bqhg,4845
+django/core/files/images.py,sha256=Yms--hugUWcpsZJJJ0-UwkIe3PVZ4LjMFz4O7Ew9FBE,2644
+django/core/files/locks.py,sha256=mp96hc8nMob8cMESiASFWUTUn_afW8A4ag_viWz0ojU,3614
+django/core/files/move.py,sha256=wEOioo_1hnWjhwVB7vZpmMMPaSS_OJE9kNurdL_2BYI,2948
+django/core/files/storage/__init__.py,sha256=EosmC1_WLaAFOuapjyoKFNudQiyRIW8C2hx90oQaVD4,622
+django/core/files/storage/__pycache__/__init__.cpython-311.pyc,,
+django/core/files/storage/__pycache__/base.cpython-311.pyc,,
+django/core/files/storage/__pycache__/filesystem.cpython-311.pyc,,
+django/core/files/storage/__pycache__/handler.cpython-311.pyc,,
+django/core/files/storage/__pycache__/memory.cpython-311.pyc,,
+django/core/files/storage/__pycache__/mixins.cpython-311.pyc,,
+django/core/files/storage/base.py,sha256=83MumBD3zLS_tegimD51Oh9yQsIL4cYbW9dduhRnHqI,8296
+django/core/files/storage/filesystem.py,sha256=pGTwLU3oNn0yLbG7YtOrtIGCiEkDVDxoZ3xVu-xbjNc,9598
+django/core/files/storage/handler.py,sha256=ntOJZ2nf2VUaUY7tKH0mndORFiGKSdh_16o3OtilIBI,1507
+django/core/files/storage/memory.py,sha256=eUDRB7B1uTVb1a70zeasIlV33T3kfFcF9cyvz94S4k8,9875
+django/core/files/storage/mixins.py,sha256=j_Y3unzk9Ccmx-QQjj4AoC3MUhXIw5nFbDYF3Qn_Fh0,700
+django/core/files/temp.py,sha256=I463R2HuqzAzrpIi5FA3vT8S8m2ZdSYZXOcC932FO1w,2503
+django/core/files/uploadedfile.py,sha256=6hBjxmx8P0fxmZQbtj4OTsXtUk9GdIA7IUcv_KwSI08,4189
+django/core/files/uploadhandler.py,sha256=tMzeS-FJOMQBYQm2ORsLwltwZZrdOizyJSmdFjer_Sw,7180
+django/core/files/utils.py,sha256=tBT8c8wCObMmiVF4BpBpCV5_hhgMKxe2poiunwFpIcw,2602
+django/core/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/handlers/__pycache__/__init__.cpython-311.pyc,,
+django/core/handlers/__pycache__/asgi.cpython-311.pyc,,
+django/core/handlers/__pycache__/base.cpython-311.pyc,,
+django/core/handlers/__pycache__/exception.cpython-311.pyc,,
+django/core/handlers/__pycache__/wsgi.cpython-311.pyc,,
+django/core/handlers/asgi.py,sha256=-lHVt6z6ioCs0CgGIrsPVXvpqqdaH-Lc3Xb99RdSbu4,13839
+django/core/handlers/base.py,sha256=j7ScIbMLKYa52HqwHYhIfMWWAG749natcsBsVQsvBjc,14813
+django/core/handlers/exception.py,sha256=4Qt5FDtleQuuLQwVl3jkVVITqX7OG106W8dQ2yc58bg,5961
+django/core/handlers/wsgi.py,sha256=81DErgzHAaZcw2UivrKqwS69QpoRF8tm0ASEc4v3uQ4,7315
+django/core/mail/__init__.py,sha256=XJ1IZhgWtpwHC5N9HBz4OwEUJGhWDR6FyXJik-Wvjuo,5049
+django/core/mail/__pycache__/__init__.cpython-311.pyc,,
+django/core/mail/__pycache__/message.cpython-311.pyc,,
+django/core/mail/__pycache__/utils.cpython-311.pyc,,
+django/core/mail/backends/__init__.py,sha256=VJ_9dBWKA48MXBZXVUaTy9NhgfRonapA6UAjVFEPKD8,37
+django/core/mail/backends/__pycache__/__init__.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/base.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/console.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/dummy.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/filebased.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/locmem.cpython-311.pyc,,
+django/core/mail/backends/__pycache__/smtp.cpython-311.pyc,,
+django/core/mail/backends/base.py,sha256=Cljbb7nil40Dfpob2R8iLmlO0Yv_wlOCBA9hF2Z6W54,1683
+django/core/mail/backends/console.py,sha256=H6lWE18H8uSxj7LB1SGTqQ7UFpk9gWLZYq6reowixLU,1427
+django/core/mail/backends/dummy.py,sha256=sI7tAa3MfG43UHARduttBvEAYYfiLasgF39jzaZPu9E,234
+django/core/mail/backends/filebased.py,sha256=AbEBL9tXr6WIhuSQvm3dHoCpuMoDTSIkx6qFb4GMUe4,2353
+django/core/mail/backends/locmem.py,sha256=95yAcfid-4akp2Eq1DkNrHiYF2-0pKR2N7VCPxMu_50,913
+django/core/mail/backends/smtp.py,sha256=vYF03edaHedkcZqoKaSL38B2BFwuzA_uPXeMdPrDFBo,5803
+django/core/mail/message.py,sha256=sUDooUH8FTorj05R4yHLgWCRKNI57BUwyagToFTX--M,18749
+django/core/mail/utils.py,sha256=Wf-pdSdv0WLREYzI7EVWr59K6o7tfb3d2HSbAyE3SOE,506
+django/core/management/__init__.py,sha256=gkXgKuqIpyFauk2-kgOgU-IDxcw8TjAKM_MU-erraE0,17407
+django/core/management/__pycache__/__init__.cpython-311.pyc,,
+django/core/management/__pycache__/base.cpython-311.pyc,,
+django/core/management/__pycache__/color.cpython-311.pyc,,
+django/core/management/__pycache__/sql.cpython-311.pyc,,
+django/core/management/__pycache__/templates.cpython-311.pyc,,
+django/core/management/__pycache__/utils.cpython-311.pyc,,
+django/core/management/base.py,sha256=46XkLThPUXL5wHFlnZyRs2S4sTmo6wudVeZeqA-hy0s,24771
+django/core/management/color.py,sha256=KXdNATK5AvxVK8wtKH2GTWApnLGCZ_1NKewTsLWCBc0,3168
+django/core/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/management/commands/__pycache__/__init__.cpython-311.pyc,,
+django/core/management/commands/__pycache__/check.cpython-311.pyc,,
+django/core/management/commands/__pycache__/compilemessages.cpython-311.pyc,,
+django/core/management/commands/__pycache__/createcachetable.cpython-311.pyc,,
+django/core/management/commands/__pycache__/dbshell.cpython-311.pyc,,
+django/core/management/commands/__pycache__/diffsettings.cpython-311.pyc,,
+django/core/management/commands/__pycache__/dumpdata.cpython-311.pyc,,
+django/core/management/commands/__pycache__/flush.cpython-311.pyc,,
+django/core/management/commands/__pycache__/inspectdb.cpython-311.pyc,,
+django/core/management/commands/__pycache__/loaddata.cpython-311.pyc,,
+django/core/management/commands/__pycache__/makemessages.cpython-311.pyc,,
+django/core/management/commands/__pycache__/makemigrations.cpython-311.pyc,,
+django/core/management/commands/__pycache__/migrate.cpython-311.pyc,,
+django/core/management/commands/__pycache__/optimizemigration.cpython-311.pyc,,
+django/core/management/commands/__pycache__/runserver.cpython-311.pyc,,
+django/core/management/commands/__pycache__/sendtestemail.cpython-311.pyc,,
+django/core/management/commands/__pycache__/shell.cpython-311.pyc,,
+django/core/management/commands/__pycache__/showmigrations.cpython-311.pyc,,
+django/core/management/commands/__pycache__/sqlflush.cpython-311.pyc,,
+django/core/management/commands/__pycache__/sqlmigrate.cpython-311.pyc,,
+django/core/management/commands/__pycache__/sqlsequencereset.cpython-311.pyc,,
+django/core/management/commands/__pycache__/squashmigrations.cpython-311.pyc,,
+django/core/management/commands/__pycache__/startapp.cpython-311.pyc,,
+django/core/management/commands/__pycache__/startproject.cpython-311.pyc,,
+django/core/management/commands/__pycache__/test.cpython-311.pyc,,
+django/core/management/commands/__pycache__/testserver.cpython-311.pyc,,
+django/core/management/commands/check.py,sha256=X68B4VTS8i-3LPY0TjuQOc9AM5m9HOMBNPGbzv3FDfA,2832
+django/core/management/commands/compilemessages.py,sha256=-SIJnmyXjYu3tRdt-wnx7CQZV3uvREGhOL1qxLjU908,7010
+django/core/management/commands/createcachetable.py,sha256=bdKfxftffjoKQgSJfCBJRgVCwzhqnUn88MvAMPNTits,4656
+django/core/management/commands/dbshell.py,sha256=iBag6uDbB_Wad_Wzh1hbM2egS-8VOrmJwmWyHRYWF8M,1762
+django/core/management/commands/diffsettings.py,sha256=NNL_J0P3HRzAZd9XcW7Eo_iE_lNliIpKtdcarDbBRpc,3554
+django/core/management/commands/dumpdata.py,sha256=eGPBqrzdk4YZpyRaIUQWKfxe7qprKBYY_jC8DcuJILw,11180
+django/core/management/commands/flush.py,sha256=1LRuBYcWCqIKa23IHLEdtIZzgUGGDGw0YSb6RTX1SaE,3651
+django/core/management/commands/inspectdb.py,sha256=perWud1Kq1ST8VMQeEcsQCaCPC5I6Jb31Ofvr2pI8YI,17338
+django/core/management/commands/loaddata.py,sha256=8odpvT9UxaJuHA7ze5dDUHzFeq-dhdbH9Lk19JY3QZo,16008
+django/core/management/commands/makemessages.py,sha256=mvoERglPw76D33wFCW5z88mS0OuyO9Bi5Gpk78Lkmf8,28695
+django/core/management/commands/makemigrations.py,sha256=5v7NSJ3CIgJ1Mw2dbRBC_VkozmZu_LqvZgR7LCaKPWI,22539
+django/core/management/commands/migrate.py,sha256=DuC5kfZV2hyR2CGv5G7nUcm4eTxhw99QAznlz5GPHXs,21349
+django/core/management/commands/optimizemigration.py,sha256=yRKoXPTN_MmB3CAbBd5l3D50cek0A8VrlPoyLyNNk98,5244
+django/core/management/commands/runserver.py,sha256=fRMCU4ognBvav9b31n8mEo-ubUlHXwDdikVRxHWJ0qI,7539
+django/core/management/commands/sendtestemail.py,sha256=sF5TUMbD_tlGBnUsn9t-oFVGNSyeiWRIrgyPbJE88cs,1518
+django/core/management/commands/shell.py,sha256=5d3_PV3vZg7C6Lq-NwybJKqivzIRTns7s8GVcLKLB1E,9169
+django/core/management/commands/showmigrations.py,sha256=24s51EzwIhL6lIpumivpaixQTDGx7I1qJ0wKFNGaEMU,6847
+django/core/management/commands/sqlflush.py,sha256=7KiAXzUqqE3IeGresT-kVzyk_i8XP2NTsIBmYt30D3Y,1031
+django/core/management/commands/sqlmigrate.py,sha256=r1NZquOZ2aW2bPhFJQYTT7IDsh2kNGZIRJmdIT3r8FQ,3310
+django/core/management/commands/sqlsequencereset.py,sha256=cdnbbd7y81CAYK9KX-V6Ho8KJIO_mVtG3V6tftIBp6g,1101
+django/core/management/commands/squashmigrations.py,sha256=tab7zNB9asV-Dz_EaV8_DO8OLOc1oNnD5XcdGYHQr00,10882
+django/core/management/commands/startapp.py,sha256=Dhllhaf1q3EKVnyBLhJ9QsWf6JmjAtYnVLruHsmMlcQ,503
+django/core/management/commands/startproject.py,sha256=Iv7KOco1GkzGqUEME_LCx5vGi4JfY8-lzdkazDqF7k8,789
+django/core/management/commands/test.py,sha256=UXxsInhGqrcsMMiHk6uBvAwMMzCZDwJl5_Ql3L6lkx8,2367
+django/core/management/commands/testserver.py,sha256=aiS0tCe6uXp9hjcE1LUfZ118xAcMa28ImHL4ynQSqO8,2238
+django/core/management/sql.py,sha256=fP6Bvq4NrQB_9Tb6XsYeCg57xs2Ck6uaCXq0ojFOSvA,1851
+django/core/management/templates.py,sha256=vmddJ9owkojUvVjQliTx7yY3CO_hcBfy_YhIdQGSdTo,15435
+django/core/management/utils.py,sha256=3UGXgrDi5HwUQGU1i5wQiGHBF-kt8yJ0uGyFmu5mGKE,5636
+django/core/paginator.py,sha256=YFR2EE0W2cLhEuXSWI67c33DreVVSxlz9xRjqGs50zc,7905
+django/core/serializers/__init__.py,sha256=gaH58ip_2dyUFDlfOPenMkVJftQQOBvXqCcZBjAKwTA,8772
+django/core/serializers/__pycache__/__init__.cpython-311.pyc,,
+django/core/serializers/__pycache__/base.cpython-311.pyc,,
+django/core/serializers/__pycache__/json.cpython-311.pyc,,
+django/core/serializers/__pycache__/jsonl.cpython-311.pyc,,
+django/core/serializers/__pycache__/python.cpython-311.pyc,,
+django/core/serializers/__pycache__/pyyaml.cpython-311.pyc,,
+django/core/serializers/__pycache__/xml_serializer.cpython-311.pyc,,
+django/core/serializers/base.py,sha256=6LnbPCb4wbDYsE3svEztt2AlS5hZx3NmIdM_0uRijh0,12631
+django/core/serializers/json.py,sha256=AB24RCDiQpooon37EkJLlf0mczzjvM0b1oCcBDtPeVE,3757
+django/core/serializers/jsonl.py,sha256=iW5uUBdeZpkgER4foGhpvrk246l0Q_oQD4rhV1Qwyyo,2258
+django/core/serializers/python.py,sha256=Tr5RYdiy3CgMnT1voVSlvLujOZObeEehUXfwHWPVsyg,8094
+django/core/serializers/pyyaml.py,sha256=RxM3tyX-9IcueeSb-lwUsK7H0Heq7e1kyQU0QfrP21c,3061
+django/core/serializers/xml_serializer.py,sha256=ceGm66IeqC2kM_XC786_jwn0Nwl4j7Uv0i_SJxTib7Y,18556
+django/core/servers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/core/servers/__pycache__/__init__.cpython-311.pyc,,
+django/core/servers/__pycache__/basehttp.cpython-311.pyc,,
+django/core/servers/basehttp.py,sha256=0XtDP4SDBGovGKe6oXBba6-qgBJK2lw1umB8RXSOtUo,9995
+django/core/signals.py,sha256=5vh1e7IgPN78WXPo7-hEMPN9tQcqJSZHu0WCibNgd-E,151
+django/core/signing.py,sha256=5-uDACJ8WxTJmwfwPoXRIO4nSr2v4032aTVwPaPLxWA,8772
+django/core/validators.py,sha256=02XDCZs1rm75CoVjj9lFnrgFlHGgDMGKoKrVeMOlnsk,22484
+django/core/wsgi.py,sha256=2sYMSe3IBrENeQT7rys-04CRmf8hW2Q2CjlkBUIyjHk,388
+django/db/__init__.py,sha256=CBuehITrkVMn02P63M0GY1MnZuC0GefA1MAoxlVo3b4,1533
+django/db/__pycache__/__init__.cpython-311.pyc,,
+django/db/__pycache__/transaction.cpython-311.pyc,,
+django/db/__pycache__/utils.cpython-311.pyc,,
+django/db/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/__pycache__/ddl_references.cpython-311.pyc,,
+django/db/backends/__pycache__/signals.cpython-311.pyc,,
+django/db/backends/__pycache__/utils.cpython-311.pyc,,
+django/db/backends/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/base/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/base/__pycache__/base.cpython-311.pyc,,
+django/db/backends/base/__pycache__/client.cpython-311.pyc,,
+django/db/backends/base/__pycache__/creation.cpython-311.pyc,,
+django/db/backends/base/__pycache__/features.cpython-311.pyc,,
+django/db/backends/base/__pycache__/introspection.cpython-311.pyc,,
+django/db/backends/base/__pycache__/operations.cpython-311.pyc,,
+django/db/backends/base/__pycache__/schema.cpython-311.pyc,,
+django/db/backends/base/__pycache__/validation.cpython-311.pyc,,
+django/db/backends/base/base.py,sha256=EggBYM3OZwXKWnYjTad61X0SgezvOC60ucxDF69qNSU,28598
+django/db/backends/base/client.py,sha256=90Ffs6zZYCli3tJjwsPH8TItZ8tz1Pp-zhQa-EpsNqc,937
+django/db/backends/base/creation.py,sha256=AFQL_xz48jYzZTdHl3r3d_2v_xGyJMMENXmEUcbRv48,15847
+django/db/backends/base/features.py,sha256=41SfTvfaFnagiGEpHQ9Rk6XswCKzVtoeUMDFa9XFekk,15946
+django/db/backends/base/introspection.py,sha256=CJG3MUmR-wJpNm-gNWuMRMNknWp3ZdZ9DRUbKxcnwuo,7900
+django/db/backends/base/operations.py,sha256=oBBjIbP6ZD8_mYGN7RHCBO3pmoSNZOYDGzRAr0hTJq4,30169
+django/db/backends/base/schema.py,sha256=ytvviES5kN8GnvqOWpqDoR4O5VDF_klcQ79iKDnwYAQ,82323
+django/db/backends/base/validation.py,sha256=2zpI11hyUJr0I0cA1xmvoFwQVdZ-7_1T2F11TpQ0Rkk,1067
+django/db/backends/ddl_references.py,sha256=dUlkGLGdjOnacR_8PaweA5XSwgD8wojMTJUVOCOKVLY,8619
+django/db/backends/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/dummy/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/dummy/__pycache__/base.cpython-311.pyc,,
+django/db/backends/dummy/__pycache__/features.cpython-311.pyc,,
+django/db/backends/dummy/base.py,sha256=keUxD7V-XsfD8b1zcbkP-vQgy7NbIJOePd810QRyJM4,2217
+django/db/backends/dummy/features.py,sha256=Pg8_jND-aoJomTaBBXU3hJEjzpB-rLs6VwpoKkOYuQg,181
+django/db/backends/mysql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/mysql/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/base.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/client.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/compiler.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/creation.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/features.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/introspection.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/operations.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/schema.cpython-311.pyc,,
+django/db/backends/mysql/__pycache__/validation.cpython-311.pyc,,
+django/db/backends/mysql/base.py,sha256=mYH0HTP9VD0ImztdiW5fGfnaFr4LzAqDx0FtGsAJ25Y,16864
+django/db/backends/mysql/client.py,sha256=IpwdI-H5r-QUoM8ZvPXHykNxKb2wevcUx8HvxTn_otU,2988
+django/db/backends/mysql/compiler.py,sha256=oX6DtScmxnIX2NsIZeRmD28Q3uC-wYiwYAevuuMxwHE,3094
+django/db/backends/mysql/creation.py,sha256=8BV8YHk3qEq555nH3NHukxpZZgxtvXFvkv7XvkRlhKA,3449
+django/db/backends/mysql/features.py,sha256=3Aab0KO-WrAlHDhjluD6GfLoy8wXIhGY5AnoZHKGCnA,11128
+django/db/backends/mysql/introspection.py,sha256=AY06ZLynWypYTEGAsR-t4F9Uj7Fb0Hqi-QNW1YwRnEQ,14498
+django/db/backends/mysql/operations.py,sha256=3gyu66ZsaMl3cPUvauwcxd5f4ny3qy77oRajDMcwstk,18330
+django/db/backends/mysql/schema.py,sha256=6jSaORTUarIukP5myMw6QSVaqzCyKIRrKVYncBnjNZY,11239
+django/db/backends/mysql/validation.py,sha256=XERj0lPEihKThPvzoVJmNpWdPOun64cRF3gHv-zmCGk,3093
+django/db/backends/oracle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/oracle/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/base.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/client.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/creation.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/features.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/functions.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/introspection.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/operations.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/oracledb_any.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/schema.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/utils.cpython-311.pyc,,
+django/db/backends/oracle/__pycache__/validation.cpython-311.pyc,,
+django/db/backends/oracle/base.py,sha256=qMBothS8-6UrdmCY0RBit-c4nJdwmeRAJ3l8ZYuWvnU,26097
+django/db/backends/oracle/client.py,sha256=DfDURfno8Sek13M8r5S2t2T8VUutx2hBT9DZRfow9VQ,784
+django/db/backends/oracle/creation.py,sha256=-JsWjyVV_VCNnUf1QJYXIsfXnEmnVwzhdZxq22loUY4,20986
+django/db/backends/oracle/features.py,sha256=RuJNQKg1dpxn95Ze8134vBiUi3KYybbyT8nQ68AGTNM,9336
+django/db/backends/oracle/functions.py,sha256=2OoBYyY1Lb4B5hYbkRHjd8YY_artr3QeGu2hlojC-vc,812
+django/db/backends/oracle/introspection.py,sha256=MjjO-PqpcfiUd9WkLqiC8XGgbC4gocvymqQ1bh-ceKk,15474
+django/db/backends/oracle/operations.py,sha256=kPqTzdpPuNwJqlA-uhDiG9r8dZN7gX0vRf7kiJ9z1Xs,30187
+django/db/backends/oracle/oracledb_any.py,sha256=khvvdziN8LPa6r0QjZwty2YMcGXLCIZKU8iuIsPyjDI,446
+django/db/backends/oracle/schema.py,sha256=iGTXfEIYtiMAq0y8LH80CnpEFmnLo6JMHaWTJBu5kEw,10753
+django/db/backends/oracle/utils.py,sha256=AngNeRYj9W26CpOgyaFM2qPB4KOf3DpIoJgfXoqwkbs,2753
+django/db/backends/oracle/validation.py,sha256=cq-Bvy5C0_rmkgng0SSQ4s74FKg2yTM1N782Gfz86nY,860
+django/db/backends/postgresql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/postgresql/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/base.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/client.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/compiler.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/creation.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/features.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/introspection.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/operations.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/psycopg_any.cpython-311.pyc,,
+django/db/backends/postgresql/__pycache__/schema.cpython-311.pyc,,
+django/db/backends/postgresql/base.py,sha256=1ztHLo0_MVteU_WoEOXoDWoDEDBfpmjHoNDzRQOKr6c,23486
+django/db/backends/postgresql/client.py,sha256=BxpiOYe2hzg4tWjPKHDJxa8zdr6S7CN9YiaOhTDJUOo,2044
+django/db/backends/postgresql/compiler.py,sha256=m3m80PzPXjK7G1TTrr4Gd7tmdPyDMcsppEZQVnsg4vM,2054
+django/db/backends/postgresql/creation.py,sha256=pZYCzq893jcMd8jhnUH2suBaOC9LrkTtpBn9gdpqxTY,3886
+django/db/backends/postgresql/features.py,sha256=UqvBWre25wrie-z47GaOLwVc6P74_iIMSbxzSqGNJ2A,5979
+django/db/backends/postgresql/introspection.py,sha256=0j4Y5ZAuSk8iaMbDBjUF9zHTcL3C5WibIiJygOvZMP8,11604
+django/db/backends/postgresql/operations.py,sha256=Ht2ZWPD7p-cp2do4to-XnvV4LM-9SyTubMz6DqwU4TI,15940
+django/db/backends/postgresql/psycopg_any.py,sha256=X2aU-MHfDNbXaKT2-2VC3mhiAVxYth_uMJPKoAPLsKQ,3885
+django/db/backends/postgresql/schema.py,sha256=N-c5Q2EXuTdYoelNXDnkQ8apFcpYT6YFRdhnh5pFBYU,14749
+django/db/backends/signals.py,sha256=Yl14KjYJijTt1ypIZirp90lS7UTJ8UogPFI_DwbcsSc,66
+django/db/backends/sqlite3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/db/backends/sqlite3/__pycache__/__init__.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/_functions.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/base.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/client.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/creation.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/features.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/introspection.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/operations.cpython-311.pyc,,
+django/db/backends/sqlite3/__pycache__/schema.cpython-311.pyc,,
+django/db/backends/sqlite3/_functions.py,sha256=4rwADvq4dJu8EAzUXPnrmN_lDcfg_Xf0w7DRHgj8faw,14559
+django/db/backends/sqlite3/base.py,sha256=SN7kSxlsfQ41MMWqleg_gmZh6mYaysZ6Tr7WO0nRQ5w,15131
+django/db/backends/sqlite3/client.py,sha256=Eb_-P1w0aTbZGVNYkv7KA1ku5Il1N2RQov2lc3v0nho,321
+django/db/backends/sqlite3/creation.py,sha256=Ib9pfwA53G4wZpLZgh7EvdipoSdvhg-wxKSP2ZowwFM,6849
+django/db/backends/sqlite3/features.py,sha256=VMCklIHmYKfzhtVbGKpySLrvalo9G1BorCcXPp7bHVQ,6533
+django/db/backends/sqlite3/introspection.py,sha256=_a4OssVW3oOqP-xKWydpyTScxc2FVIDc5pDFHeN8Uj0,17930
+django/db/backends/sqlite3/operations.py,sha256=XTcIjTJFK-PNDgmWUh6gxt5As8jKz6dLUNTW0DSPlUw,17167
+django/db/backends/sqlite3/schema.py,sha256=ljCADvyT_KhNC5bQ413v4cf6I9-n1i7T3853CyrLbYw,20749
+django/db/backends/utils.py,sha256=wFyQVfVs1AxR48yQIVQ-ll1sC9GUeCxdP-aavYL0lrs,11137
+django/db/migrations/__init__.py,sha256=Oa4RvfEa6hITCqdcqwXYC66YknFKyluuy7vtNbSc-L4,97
+django/db/migrations/__pycache__/__init__.cpython-311.pyc,,
+django/db/migrations/__pycache__/autodetector.cpython-311.pyc,,
+django/db/migrations/__pycache__/exceptions.cpython-311.pyc,,
+django/db/migrations/__pycache__/executor.cpython-311.pyc,,
+django/db/migrations/__pycache__/graph.cpython-311.pyc,,
+django/db/migrations/__pycache__/loader.cpython-311.pyc,,
+django/db/migrations/__pycache__/migration.cpython-311.pyc,,
+django/db/migrations/__pycache__/optimizer.cpython-311.pyc,,
+django/db/migrations/__pycache__/questioner.cpython-311.pyc,,
+django/db/migrations/__pycache__/recorder.cpython-311.pyc,,
+django/db/migrations/__pycache__/serializer.cpython-311.pyc,,
+django/db/migrations/__pycache__/state.cpython-311.pyc,,
+django/db/migrations/__pycache__/utils.cpython-311.pyc,,
+django/db/migrations/__pycache__/writer.cpython-311.pyc,,
+django/db/migrations/autodetector.py,sha256=jeKHhbdpHZ4tGOdID9RLFlf2LCiz7FwRC8JLvO-F9h4,86243
+django/db/migrations/exceptions.py,sha256=SotQF7ZKgJpd9KN-gKDL8wCJAKSEgbZToM_vtUAnqHw,1204
+django/db/migrations/executor.py,sha256=jx9J5WdS0X48UqxHkWKd2JYBUxds46Gn03ZZNAo8pTE,19038
+django/db/migrations/graph.py,sha256=vt7Pc45LuiXR8aRCrXP5Umm6VDCCTs2LAr5NXh-rxcE,13055
+django/db/migrations/loader.py,sha256=cVeJi7PwDc2Nxzgg3K_CrhK9H2HAtaXb1tG1PyDcSEA,16877
+django/db/migrations/migration.py,sha256=itZASGGepJYCY2Uv5AmLrxOgjEH1tycGV0bv3EtRjQE,9767
+django/db/migrations/operations/__init__.py,sha256=ZaABCS7A48o90bDjqtTt3ceZFwxpmnx2p1W5Qf_jsKM,1008
+django/db/migrations/operations/__pycache__/__init__.cpython-311.pyc,,
+django/db/migrations/operations/__pycache__/base.cpython-311.pyc,,
+django/db/migrations/operations/__pycache__/fields.cpython-311.pyc,,
+django/db/migrations/operations/__pycache__/models.cpython-311.pyc,,
+django/db/migrations/operations/__pycache__/special.cpython-311.pyc,,
+django/db/migrations/operations/base.py,sha256=IPBwWk-8j44IZw6FvXC9RVXqecbF0OhK-R_LMYwhNd4,5562
+django/db/migrations/operations/fields.py,sha256=OAGpT0youYLL7LcxcpO-N5fhzGlx0r_wK1ZitM7qmAE,12900
+django/db/migrations/operations/models.py,sha256=Q9JCI3tIHjLQnGMe5pg1ZSMBwmc3PISOI-MyTtV20IU,47864
+django/db/migrations/operations/special.py,sha256=CMLfqR4rO8AhDMNscOXjblKuvNA3vWFzg-6M_7xZnX4,7966
+django/db/migrations/optimizer.py,sha256=c0JZ5FGltD_gmh20e5SR6A21q_De6rUKfkAJKwmX4Ks,3255
+django/db/migrations/questioner.py,sha256=BsQQyBDJIoMzza7d4jdxMsZeV0p4a22P5MlC0i5e3mM,13568
+django/db/migrations/recorder.py,sha256=HviA3DydJPqpE8gowv1lAnIdLMTSRpRXuLFn53r-Q1Y,3827
+django/db/migrations/serializer.py,sha256=oPznMQhNezYzUb-R1U79iIAp4DtZocFvjK--B0Bbyv4,14133
+django/db/migrations/state.py,sha256=HUZqL5U64dqkwfVZBDXd0v6Vn8mka92BMdLkCRAB7Jg,41924
+django/db/migrations/utils.py,sha256=pdrzumGDhgytc5KVWdZov7cQtBt3jRASLqbmBxSRSvg,4401
+django/db/migrations/writer.py,sha256=OWRUgtTrBLndIUeNxL3-6gI5ORPdIWG_Jy9Iluizs0M,11613
+django/db/models/__init__.py,sha256=ikjLHt8fOsj60DMX1Q9knCULL6zaZNuVLPlaP93afao,3085
+django/db/models/__pycache__/__init__.cpython-311.pyc,,
+django/db/models/__pycache__/aggregates.cpython-311.pyc,,
+django/db/models/__pycache__/base.cpython-311.pyc,,
+django/db/models/__pycache__/constants.cpython-311.pyc,,
+django/db/models/__pycache__/constraints.cpython-311.pyc,,
+django/db/models/__pycache__/deletion.cpython-311.pyc,,
+django/db/models/__pycache__/enums.cpython-311.pyc,,
+django/db/models/__pycache__/expressions.cpython-311.pyc,,
+django/db/models/__pycache__/indexes.cpython-311.pyc,,
+django/db/models/__pycache__/lookups.cpython-311.pyc,,
+django/db/models/__pycache__/manager.cpython-311.pyc,,
+django/db/models/__pycache__/options.cpython-311.pyc,,
+django/db/models/__pycache__/query.cpython-311.pyc,,
+django/db/models/__pycache__/query_utils.cpython-311.pyc,,
+django/db/models/__pycache__/signals.cpython-311.pyc,,
+django/db/models/__pycache__/utils.cpython-311.pyc,,
+django/db/models/aggregates.py,sha256=qabnxEy34WopX4JYm8PHIMFFz0rRbvO06OVQxDY1eSQ,8185
+django/db/models/base.py,sha256=zg7ec4hV7WR35d1bXU4dGggycdUd98GNjEl0gPNQ3P0,100964
+django/db/models/constants.py,sha256=ndnj9TOTKW0p4YcIPLOLEbsH6mOgFi6B1-rIzr_iwwU,210
+django/db/models/constraints.py,sha256=MvW_ssFwG-VkHv_WOIZWXxXqAyddxt6KRPuInbZFbPk,29733
+django/db/models/deletion.py,sha256=RcsL4nRQcZLYIg8AMjN6uXFuRSVtswMEJYa3wRkYuYM,20943
+django/db/models/enums.py,sha256=mgBBX7bFzuPYgkPR9hvy4FZOtbZE5gfbhHWsvrIhONQ,3527
+django/db/models/expressions.py,sha256=efSUFyl-DL1XwsFuHZY4w3gSV3NvAd3Is-iv587fzbk,74983
+django/db/models/fields/__init__.py,sha256=KLDa5Kz0_AIX0QBI6MOH9QRnjnchfmLuiBNcfxPOMpw,98730
+django/db/models/fields/__pycache__/__init__.cpython-311.pyc,,
+django/db/models/fields/__pycache__/composite.cpython-311.pyc,,
+django/db/models/fields/__pycache__/files.cpython-311.pyc,,
+django/db/models/fields/__pycache__/generated.cpython-311.pyc,,
+django/db/models/fields/__pycache__/json.cpython-311.pyc,,
+django/db/models/fields/__pycache__/mixins.cpython-311.pyc,,
+django/db/models/fields/__pycache__/proxy.cpython-311.pyc,,
+django/db/models/fields/__pycache__/related.cpython-311.pyc,,
+django/db/models/fields/__pycache__/related_descriptors.cpython-311.pyc,,
+django/db/models/fields/__pycache__/related_lookups.cpython-311.pyc,,
+django/db/models/fields/__pycache__/reverse_related.cpython-311.pyc,,
+django/db/models/fields/__pycache__/tuple_lookups.cpython-311.pyc,,
+django/db/models/fields/composite.py,sha256=SfCqHlM9VF5t8uQvcwLd8yDT3cRuQs3enAa6uhKr1xI,5731
+django/db/models/fields/files.py,sha256=nLiRiY9bcVEwE8s5J6yxo2HqN3HreDHPDNHfaW3qLrs,20206
+django/db/models/fields/generated.py,sha256=hzCBUpS1fvoimEI_D7WtoLk6AryGw0TRdyk-UkYBDJE,7655
+django/db/models/fields/json.py,sha256=vgNOlxOrTamKle_irilf8Oj1eGMADDDtT6rdat5ljGM,23893
+django/db/models/fields/mixins.py,sha256=8HrdKIq0eG9vVstJwkK-2g2wdwyvcEVWBzP3S0hzeWY,2478
+django/db/models/fields/proxy.py,sha256=eFHyl4gRTqocjgd6nID9UlQuOIppBA57Vcr71UReTAs,515
+django/db/models/fields/related.py,sha256=E48Asth4GqMIbVKRFr-GwBFdaUkP7Drd_Po6BaYdTa8,79371
+django/db/models/fields/related_descriptors.py,sha256=RxwwyJxpIiZjzEA50P2SR0KcTr9BAVLBZ3h__ppjBqE,66722
+django/db/models/fields/related_lookups.py,sha256=bcwLH0tflmcx2168veYOUDVZ31u7-UFtETUG91BddeE,6076
+django/db/models/fields/reverse_related.py,sha256=EAiX26xVCrTcGj_OjBC_e6sjEXE4-FyVxnESECO8jvc,12908
+django/db/models/fields/tuple_lookups.py,sha256=irehNWmRZp8gyUsdpo63gk28_pQJtecf6v05kC6LK8w,14349
+django/db/models/functions/__init__.py,sha256=jz3DukwiIczpJJpajmwLTIJdi-DQfHxYKLMh0D08X3g,2714
+django/db/models/functions/__pycache__/__init__.cpython-311.pyc,,
+django/db/models/functions/__pycache__/comparison.cpython-311.pyc,,
+django/db/models/functions/__pycache__/datetime.cpython-311.pyc,,
+django/db/models/functions/__pycache__/json.cpython-311.pyc,,
+django/db/models/functions/__pycache__/math.cpython-311.pyc,,
+django/db/models/functions/__pycache__/mixins.cpython-311.pyc,,
+django/db/models/functions/__pycache__/text.cpython-311.pyc,,
+django/db/models/functions/__pycache__/window.cpython-311.pyc,,
+django/db/models/functions/comparison.py,sha256=ampNkaAtm6Ux2iEU9sT3wumbdB39R6Aa9TNIE8F2fxQ,6810
+django/db/models/functions/datetime.py,sha256=IxDj0X1IUkzbIFbyDmjQZ0PL7eIO2rMn1kU47JlSl1E,13614
+django/db/models/functions/json.py,sha256=RPRvMqCcXDMtIoK7rw2mHbdq4Ay3Z5sXRzQoj-k491I,4668
+django/db/models/functions/math.py,sha256=NugCfaC8Y_VhpEr62HMeDX3O934NnuBPsk3mi5I_DmE,6140
+django/db/models/functions/mixins.py,sha256=UqpHYyF33JSEWYdggezTtWkrMkPKFEfW6enIkujzgaQ,2382
+django/db/models/functions/text.py,sha256=aBnl-5-l3qw8wa7hFIOcHCoUOLGtlk6SFFY4PYZGMtU,11528
+django/db/models/functions/window.py,sha256=g4fryay1tLQCpZRfmPQhrTiuib4RvPqtwFdodlLbi98,2841
+django/db/models/indexes.py,sha256=HYCD06Is7-f0aIGkXdWNeEXzfBoSY6ECNCiVbe8tlwk,11935
+django/db/models/lookups.py,sha256=tefhdR_HrvYF3IPnXVxUKLprQLwXzXPaTrvdxIkK1U4,29048
+django/db/models/manager.py,sha256=n97p4q0ttwmI1XcF9dAl8Pfg5Zs8iudufhWebQ7Xau0,6866
+django/db/models/options.py,sha256=xQFZqckdo9SHdoc86cYvW-nWSAQqjyGDeSerBxVNelk,39469
+django/db/models/query.py,sha256=ybB4YfpoBUKJBsm-oy_-i0jDdu0Iueykcyjjj03xLvs,107026
+django/db/models/query_utils.py,sha256=7OhWh-Sj8klamRbzZ9SXRRgLCE4YPRdWKFq2AQ1sW2c,19700
+django/db/models/signals.py,sha256=mG6hxVWugr_m0ugTU2XAEMiqlu2FJ4CBuGa34dLJvEQ,1622
+django/db/models/sql/__init__.py,sha256=BGZ1GSn03dTOO8PYx6vF1-ImE3g1keZsQ74AHJoQwmQ,241
+django/db/models/sql/__pycache__/__init__.cpython-311.pyc,,
+django/db/models/sql/__pycache__/compiler.cpython-311.pyc,,
+django/db/models/sql/__pycache__/constants.cpython-311.pyc,,
+django/db/models/sql/__pycache__/datastructures.cpython-311.pyc,,
+django/db/models/sql/__pycache__/query.cpython-311.pyc,,
+django/db/models/sql/__pycache__/subqueries.cpython-311.pyc,,
+django/db/models/sql/__pycache__/where.cpython-311.pyc,,
+django/db/models/sql/compiler.py,sha256=DHB99snY2VyMTf0L9AKq7fJgR6zHKJVpMJzrU7BsOBQ,92397
+django/db/models/sql/constants.py,sha256=xXZKLd59Od-A3hI3X6iDmIBq1Ry0R9Ckta-TLFY3GNg,599
+django/db/models/sql/datastructures.py,sha256=tDcVdWqVZgpzcMgEVBVBNyR21-UCoV2bd6o0AkgeUGs,8271
+django/db/models/sql/query.py,sha256=8CDWygvv5isnyPMTFLpzCpGIPuDlmTp0ieJmUs2qhSo,119892
+django/db/models/sql/subqueries.py,sha256=q7NFOnsEUtE5dW5IkD9-IxS5qfQf2dL3XmB-1fQOqhA,6150
+django/db/models/sql/where.py,sha256=QHcEVXpToaQBcN1A1gWrKl9xtYBALIXheyxeI0O2iLg,12317
+django/db/models/utils.py,sha256=vzojL0uUQHuOm2KxTJ19DHGnQ1pBXbnWaTlzR0vVimI,2182
+django/db/transaction.py,sha256=whcgZIBEnVNaPrxdxevhjs3K16KWN6yJAnIXNP8-uLw,12506
+django/db/utils.py,sha256=RKtSSyVJmM5__SAs1pY0njX6hLVRy1WIBggYo1zP4RI,9279
+django/dispatch/__init__.py,sha256=qP203zNwjaolUFnXLNZHnuBn7HNzyw9_JkODECRKZbc,286
+django/dispatch/__pycache__/__init__.cpython-311.pyc,,
+django/dispatch/__pycache__/dispatcher.cpython-311.pyc,,
+django/dispatch/dispatcher.py,sha256=OHaB-_kl1GeVwKh_bIMbHNFmH2yVN4qfSQz2aAVXfME,17777
+django/dispatch/license.txt,sha256=VABMS2BpZOvBY68W0EYHwW5Cj4p4oCb-y1P3DAn0qU8,1743
+django/forms/__init__.py,sha256=S6ckOMmvUX-vVST6AC-M8BzsfVQwuEUAdHWabMN-OGI,368
+django/forms/__pycache__/__init__.cpython-311.pyc,,
+django/forms/__pycache__/boundfield.cpython-311.pyc,,
+django/forms/__pycache__/fields.cpython-311.pyc,,
+django/forms/__pycache__/forms.cpython-311.pyc,,
+django/forms/__pycache__/formsets.cpython-311.pyc,,
+django/forms/__pycache__/models.cpython-311.pyc,,
+django/forms/__pycache__/renderers.cpython-311.pyc,,
+django/forms/__pycache__/utils.cpython-311.pyc,,
+django/forms/__pycache__/widgets.cpython-311.pyc,,
+django/forms/boundfield.py,sha256=K28bu_Gs8LsYxVZVmQdftuAME-Zqkw_yAIsKrXmLR48,13271
+django/forms/fields.py,sha256=yU9NRyGU_IXSEBbFRIteWatYU-WN5zCQEpQPYUWRI4o,49982
+django/forms/forms.py,sha256=2Y2NhbwY2cQiz8zSxdfjO5JO_jZVo8Yn9H2OMYisSXo,16132
+django/forms/formsets.py,sha256=X4otFCXoQgIEII2bTnprrEu4cHC-bpQ9t18Pth8p9MM,21338
+django/forms/jinja2/django/forms/attrs.html,sha256=TD0lNK-ohDjb_bWg1Kosdn4kU01B_M0_C19dp9kYJqo,165
+django/forms/jinja2/django/forms/div.html,sha256=WaOqY1hQe1l6vnc3TdlBmQnQRsofIoNDvGAfg2-X1lU,514
+django/forms/jinja2/django/forms/errors/dict/default.html,sha256=1DLQf0Czjr5V4cghQOyJr3v34G2ClF0RAOc-H7GwXUE,49
+django/forms/jinja2/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113
+django/forms/jinja2/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137
+django/forms/jinja2/django/forms/errors/list/default.html,sha256=q41d4u6XcxDL06gRAVdU021kM_iFLIt5BuYa-HATOWE,49
+django/forms/jinja2/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52
+django/forms/jinja2/django/forms/errors/list/ul.html,sha256=vK5_FeE7w5XBIW2GUlJinteEsMIo0-5rZ3dtV-8LGNg,187
+django/forms/jinja2/django/forms/field.html,sha256=IfeDkBp7yHZDnyD-jVwehX1G15wvfbTkxHkjpUC_dcc,507
+django/forms/jinja2/django/forms/formsets/div.html,sha256=uq10XZdQ1WSt6kJFoKxtluvnCKE4L3oYcLkPraF4ovs,86
+django/forms/jinja2/django/forms/formsets/p.html,sha256=HzEX7XdSDt9owDkYJvBdFIETeU9RDbXc1e4R2YEt6ec,84
+django/forms/jinja2/django/forms/formsets/table.html,sha256=L9B4E8lR0roTr7dBoMiUlekuMbO-3y4_b4NHm6Oy_Vg,88
+django/forms/jinja2/django/forms/formsets/ul.html,sha256=ANvMWb6EeFAtLPDTr61IeI3-YHtAYZCT_zmm-_y-5Oc,85
+django/forms/jinja2/django/forms/label.html,sha256=trXo6yF4ezDv-y-8y1yJnP7sSByw0TTppgZLcrmfR6M,147
+django/forms/jinja2/django/forms/p.html,sha256=NsTxSuqV58iOT7_3EvWRkY1zVYCdhzLBrtde1V47QTA,740
+django/forms/jinja2/django/forms/table.html,sha256=RoJweFtjCPwkFhAAlPT7i_sSCDxo1xMs3NH0uFIla20,881
+django/forms/jinja2/django/forms/ul.html,sha256=svUpAmU5EhhGVHKs8qXixJN-3SzPft8CXoG3-4gegs8,779
+django/forms/jinja2/django/forms/widgets/attrs.html,sha256=_J2P-AOpHFhIwaqCNcrJFxEY4s-KPdy0Wcq0KlarIG0,172
+django/forms/jinja2/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55
+django/forms/jinja2/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57
+django/forms/jinja2/django/forms/widgets/clearable_file_input.html,sha256=1dv4xtik6um_mzK1skURF_n4G1t1yluziQu2UWa6fX8,559
+django/forms/jinja2/django/forms/widgets/color.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/input.html,sha256=u12fZde-ugkEAAkPAtAfSxwGQmYBkXkssWohOUs-xoE,172
+django/forms/jinja2/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219
+django/forms/jinja2/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54
+django/forms/jinja2/django/forms/widgets/multiple_input.html,sha256=voM3dqu69R0Z202TmCgMFM6toJp7FgFPVvbWY9WKEAU,395
+django/forms/jinja2/django/forms/widgets/multiwidget.html,sha256=pr-MxRyucRxn_HvBGZvbc3JbFyrAolbroxvA4zmPz2Y,86
+django/forms/jinja2/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57
+django/forms/jinja2/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55
+django/forms/jinja2/django/forms/widgets/search.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/select.html,sha256=ESyDzbLTtM7-OG34EuSUnvxCtyP5IrQsZh0jGFrIdEA,365
+django/forms/jinja2/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/jinja2/django/forms/widgets/select_option.html,sha256=tNa1D3G8iy2ZcWeKyI-mijjDjRmMaqSo-jnAR_VS3Qc,110
+django/forms/jinja2/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/jinja2/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/jinja2/django/forms/widgets/tel.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145
+django/forms/jinja2/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/jinja2/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/models.py,sha256=iTw-csqlUkObA465IZ1jkd8cUi61Gbb0Jp3Z5UqIhiA,61213
+django/forms/renderers.py,sha256=cr376RSNhqkOJlhJU0bJOUjbUDiLQ-6yFdcejxvRY7w,3285
+django/forms/templates/django/forms/attrs.html,sha256=UFPgCXXCAkbumxZE1NM-aJVE4VCe2RjCrHLNseibv3I,165
+django/forms/templates/django/forms/div.html,sha256=PgJSGlEXXLmh58WLH49cxvUaWI8bxE0ioTf-MY89uF8,525
+django/forms/templates/django/forms/errors/dict/default.html,sha256=tFtwfHlkOY_XaKjoUPsWshiSWT5olxm3kDElND-GQtQ,48
+django/forms/templates/django/forms/errors/dict/text.txt,sha256=E7eqEWc6q2_kLyc9k926klRe2mPp4O2VqG-2_MliYaU,113
+django/forms/templates/django/forms/errors/dict/ul.html,sha256=65EYJOqDAn7-ca7FtjrcdbXygLE-RA_IJQTltO7qS1Q,137
+django/forms/templates/django/forms/errors/list/default.html,sha256=Kmx1nwrzQ49MaP80Gd17GC5TQH4B7doWa3I3azXvoHA,48
+django/forms/templates/django/forms/errors/list/text.txt,sha256=VVbLrGMHcbs1hK9-2v2Y6SIoH9qRMtlKzM6qzLVAFyE,52
+django/forms/templates/django/forms/errors/list/ul.html,sha256=hPgaIuN9n1pvdybEs6zKK_OkFihIMbTb5ykcTQlASEw,186
+django/forms/templates/django/forms/field.html,sha256=_TsLfCjYj1uzlkjy9qJdqyrZevtgH08BfMebilrdeMU,502
+django/forms/templates/django/forms/formsets/div.html,sha256=lmIRSTBuGczEd2lj-UfDS9zAlVv8ntpmRo-boDDRwEg,84
+django/forms/templates/django/forms/formsets/p.html,sha256=qkoHKem-gb3iqvTtROBcHNJqI-RoUwLHUvJC6EoHg-I,82
+django/forms/templates/django/forms/formsets/table.html,sha256=N0G9GETzJfV16wUesvdrNMDwc8Fhh6durrmkHUPeDZY,86
+django/forms/templates/django/forms/formsets/ul.html,sha256=bGQpjbpKwMahyiIP4-2p3zg3yJP-pN1A48yCqhHdw7o,83
+django/forms/templates/django/forms/label.html,sha256=0bJCdIj8G5e2Gaw3QUR0ZMdwVavC80YwxS5E0ShkzmE,122
+django/forms/templates/django/forms/p.html,sha256=NhXyxIJCngGT7xK2nA4_vpEWWiaIcIUKGVOmMcnjRy4,751
+django/forms/templates/django/forms/table.html,sha256=ELTypjKfqSluAJk6-no0m2_Rve3c6HJoWV3hQ_xfnto,892
+django/forms/templates/django/forms/ul.html,sha256=vPmRsKnLcofRZJq23XHxnBs8PLs6jD4_Pw1ULbtSxPg,790
+django/forms/templates/django/forms/widgets/attrs.html,sha256=9ylIPv5EZg-rx2qPLgobRkw6Zq_WJSM8kt106PpSYa0,172
+django/forms/templates/django/forms/widgets/checkbox.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/checkbox_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55
+django/forms/templates/django/forms/widgets/checkbox_select.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57
+django/forms/templates/django/forms/widgets/clearable_file_input.html,sha256=1dv4xtik6um_mzK1skURF_n4G1t1yluziQu2UWa6fX8,559
+django/forms/templates/django/forms/widgets/color.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/date.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/datetime.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/email.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/file.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/hidden.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/input.html,sha256=dwzzrLocGLZQIaGe-_X8k7z87jV6AFtn28LilnUnUH0,189
+django/forms/templates/django/forms/widgets/input_option.html,sha256=PyRNn9lmE9Da0-RK37zW4yJZUSiJWgIPCU9ou5oUC28,219
+django/forms/templates/django/forms/widgets/multiple_hidden.html,sha256=T54-n1ZeUlTd-svM3C4tLF42umKM0R5A7fdfsdthwkA,54
+django/forms/templates/django/forms/widgets/multiple_input.html,sha256=jxEWRqV32a73340eQ0uIn672Xz5jW9qm3V_srByLEd0,426
+django/forms/templates/django/forms/widgets/multiwidget.html,sha256=slk4AgCdXnVmFvavhjVcsza0quTOP2LG50D8wna0dw0,117
+django/forms/templates/django/forms/widgets/number.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/password.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/radio.html,sha256=-ob26uqmvrEUMZPQq6kAqK4KBk2YZHTCWWCM6BnaL0w,57
+django/forms/templates/django/forms/widgets/radio_option.html,sha256=U2dFtAXvOn_eK4ok0oO6BwKE-3-jozJboGah_PQFLVM,55
+django/forms/templates/django/forms/widgets/search.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/select.html,sha256=7U0RzjeESG87ENzQjPRUF71gvKvGjVVvXcpsW2-BTR4,384
+django/forms/templates/django/forms/widgets/select_date.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/templates/django/forms/widgets/select_option.html,sha256=N_psd0JYCqNhx2eh2oyvkF2KU2dv7M9mtMw_4BLYq8A,127
+django/forms/templates/django/forms/widgets/splitdatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/templates/django/forms/widgets/splithiddendatetime.html,sha256=AzaPLlNLg91qkVQwwtAJxwOqDemrtt_btSkWLpboJDs,54
+django/forms/templates/django/forms/widgets/tel.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/text.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/textarea.html,sha256=Av1Y-hpXUU2AjrhnUivgZFKNBLdwCSZSeuSmCqmCkDA,145
+django/forms/templates/django/forms/widgets/time.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/templates/django/forms/widgets/url.html,sha256=fXpbxMzAdbv_avfWC5464gD2jFng931Eq7vzbzy1-yA,48
+django/forms/utils.py,sha256=fpG-AByrNerAqkDT6alV83zPDs3gs84LFDW61b9ys0E,7974
+django/forms/widgets.py,sha256=BOMbGYN8_VmBWoOkns9Oau4O2yWeyr38P8amNwisLs8,41244
+django/http/__init__.py,sha256=uVUz0ov-emc29hbD78QKKka_R1L4mpDDPhkyfkx4jzQ,1200
+django/http/__pycache__/__init__.cpython-311.pyc,,
+django/http/__pycache__/cookie.cpython-311.pyc,,
+django/http/__pycache__/multipartparser.cpython-311.pyc,,
+django/http/__pycache__/request.cpython-311.pyc,,
+django/http/__pycache__/response.cpython-311.pyc,,
+django/http/cookie.py,sha256=t7yGORGClUnCYVKQqyLBlEYsxQLLHn9crsMSWqK_Eic,679
+django/http/multipartparser.py,sha256=mrVXa2yenSbSOOlhIrgbfWS-3qlhvVtDEflSgTAKtsk,27830
+django/http/request.py,sha256=V7FTMSsLyiAuUwLgVtlIOLIp9pMAl_UjBiUrNEOtgIg,28892
+django/http/response.py,sha256=eBRnyisYtqudGCWD0YxCgdQT_76EWH4R-wh33BbW3As,26188
+django/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/middleware/__pycache__/__init__.cpython-311.pyc,,
+django/middleware/__pycache__/cache.cpython-311.pyc,,
+django/middleware/__pycache__/clickjacking.cpython-311.pyc,,
+django/middleware/__pycache__/common.cpython-311.pyc,,
+django/middleware/__pycache__/csrf.cpython-311.pyc,,
+django/middleware/__pycache__/gzip.cpython-311.pyc,,
+django/middleware/__pycache__/http.cpython-311.pyc,,
+django/middleware/__pycache__/locale.cpython-311.pyc,,
+django/middleware/__pycache__/security.cpython-311.pyc,,
+django/middleware/cache.py,sha256=KOlg-Knjx_17KtXr-vx2DEpWvpzojk3yFUSsMHUIYo4,8487
+django/middleware/clickjacking.py,sha256=rIm2VlbblLWrMTRYJ1JBIui5xshAM-2mpyJf989xOgY,1724
+django/middleware/common.py,sha256=9jJWVzLZITjEw5tWyW_DjEg7gtkzUYwwkJPWHkepaIc,7666
+django/middleware/csrf.py,sha256=Kz1sjE6gad3dLXiKz29p7OQzuuTlhmXN-SuT6F8VCWM,19489
+django/middleware/gzip.py,sha256=jsJeYv0-A4iD6-1Pd3Hehl2ZtshpE4WeBTei-4PwciA,2945
+django/middleware/http.py,sha256=RqXN9Kp6GEh8j_ub7YXRi6W2_CKZTZEyAPpFUzeNPBs,1616
+django/middleware/locale.py,sha256=CV8aerSUWmO6cJQ6IrD5BzT3YlOxYNIqFraCqr8DoY4,3442
+django/middleware/security.py,sha256=yqawglqNcPrITIUvQhSpn3BD899It4fhyOyJCTImlXE,2599
+django/shortcuts.py,sha256=O9UrrZmXjVfdzC3DXW6dDyZwXE4YG4BRpftDE8D1QF0,6506
+django/template/__init__.py,sha256=-hvAhcRO8ydLdjTJJFr6LYoBVCsJq561ebRqE9kYBJs,1845
+django/template/__pycache__/__init__.cpython-311.pyc,,
+django/template/__pycache__/autoreload.cpython-311.pyc,,
+django/template/__pycache__/base.cpython-311.pyc,,
+django/template/__pycache__/context.cpython-311.pyc,,
+django/template/__pycache__/context_processors.cpython-311.pyc,,
+django/template/__pycache__/defaultfilters.cpython-311.pyc,,
+django/template/__pycache__/defaulttags.cpython-311.pyc,,
+django/template/__pycache__/engine.cpython-311.pyc,,
+django/template/__pycache__/exceptions.cpython-311.pyc,,
+django/template/__pycache__/library.cpython-311.pyc,,
+django/template/__pycache__/loader.cpython-311.pyc,,
+django/template/__pycache__/loader_tags.cpython-311.pyc,,
+django/template/__pycache__/response.cpython-311.pyc,,
+django/template/__pycache__/smartif.cpython-311.pyc,,
+django/template/__pycache__/utils.cpython-311.pyc,,
+django/template/autoreload.py,sha256=hBanYQNDNEdgpty89I2mP_bxD-MyaeXWRmgX3K6a8Zg,2063
+django/template/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/template/backends/__pycache__/__init__.cpython-311.pyc,,
+django/template/backends/__pycache__/base.cpython-311.pyc,,
+django/template/backends/__pycache__/django.cpython-311.pyc,,
+django/template/backends/__pycache__/dummy.cpython-311.pyc,,
+django/template/backends/__pycache__/jinja2.cpython-311.pyc,,
+django/template/backends/__pycache__/utils.cpython-311.pyc,,
+django/template/backends/base.py,sha256=IniOWzwfJHhrg0azO55fhZ3d1cghNjvsrgaMkV7o6x4,2801
+django/template/backends/django.py,sha256=wbOUhTVQyz2HvrTVG1GJUknDPJtuBFDuXbm15xf7jO4,5963
+django/template/backends/dummy.py,sha256=M62stG_knf7AdVp42ZWWddkNv6g6ck_sc1nRR6Sc_xA,1751
+django/template/backends/jinja2.py,sha256=U9WBznoElT-REbITG7DnZgR7SA_Awf1gWS9vc0yrEfs,4036
+django/template/backends/utils.py,sha256=z5X_lxKa9qL4KFDVeai-FmsewU3KLgVHO8y-gHLiVts,424
+django/template/base.py,sha256=0vOGKZlXbdHsFCkdsaH9XFSmgUDJoDTzDOLf7ebBdRg,41002
+django/template/context.py,sha256=7FnF26wDyXjcXUDdFpBm-UFFsiNiwa5hod4nEaLstj8,9448
+django/template/context_processors.py,sha256=PMIuGUE1iljf5L8oXggIdvvFOhCLJpASdwd39BMdjBE,2480
+django/template/defaultfilters.py,sha256=BxaTQcUOmE4C_-FLhCQkATQS0S0z7jGfSaouGPl3T5A,28438
+django/template/defaulttags.py,sha256=EV4jJrScjDwzBJN2nJhBLMYn5bI2tBj5XpWU58wdumk,49669
+django/template/engine.py,sha256=gpk2HUxFfxVhw5onriW1uHVAec6JhVHqMcObNESXwO4,7773
+django/template/exceptions.py,sha256=rqG3_qZq31tUHbmtZD-MIu0StChqwaFejFFpR4u7th4,1342
+django/template/library.py,sha256=VBLQd0tmUlxfZTtOMziRY3Y6706kRtRtqP_J0sUSamY,16683
+django/template/loader.py,sha256=PVFUUtC5WgiRVVTilhQ6NFZnvjly6sP9s7anFmMoKdo,2054
+django/template/loader_tags.py,sha256=7_1LTeoQHGwsrML0whwUug6g6bR3ijhmwiMRH7Xs0CQ,13234
+django/template/loaders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/template/loaders/__pycache__/__init__.cpython-311.pyc,,
+django/template/loaders/__pycache__/app_directories.cpython-311.pyc,,
+django/template/loaders/__pycache__/base.cpython-311.pyc,,
+django/template/loaders/__pycache__/cached.cpython-311.pyc,,
+django/template/loaders/__pycache__/filesystem.cpython-311.pyc,,
+django/template/loaders/__pycache__/locmem.cpython-311.pyc,,
+django/template/loaders/app_directories.py,sha256=sQpVXKYpnKr9Rl1YStNca-bGIQHcOkSnmm1l2qRGFVE,312
+django/template/loaders/base.py,sha256=Y5V4g0ly9GuNe7BQxaJSMENJnvxzXJm7XhSTxzfFM0s,1636
+django/template/loaders/cached.py,sha256=bDwkWYPgbvprU_u9f9w9oNYpSW_j9b7so_mlKzp9-N4,3716
+django/template/loaders/filesystem.py,sha256=f4silD7WWhv3K9QySMgW7dlGGNwwYAcHCMSTFpwiiXY,1506
+django/template/loaders/locmem.py,sha256=t9p0GYF2VHf4XG6Gggp0KBmHkdIuSKuLdiVXMVb2iHs,672
+django/template/response.py,sha256=UAU-aM7mn6cbGOIJuurn4EE5ITdcAqSFgKD5RXFms4w,5584
+django/template/smartif.py,sha256=TLbvSZa_M4B80M2X108FK2TFjHoA8RG9bfxB0PLKNck,6410
+django/template/utils.py,sha256=9Cp3AVmWg0xvVvsL2HAYw4LDP1nJea3fTWeaojX7gpg,3571
+django/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/templatetags/__pycache__/__init__.cpython-311.pyc,,
+django/templatetags/__pycache__/cache.cpython-311.pyc,,
+django/templatetags/__pycache__/i18n.cpython-311.pyc,,
+django/templatetags/__pycache__/l10n.cpython-311.pyc,,
+django/templatetags/__pycache__/static.cpython-311.pyc,,
+django/templatetags/__pycache__/tz.cpython-311.pyc,,
+django/templatetags/cache.py,sha256=WaYvWUn5ZTERwjouvkm-c5L5LRLc-GpSWl19wFod_bk,3551
+django/templatetags/i18n.py,sha256=UrS-aE3XCEK_oX18kmH8gSgA10MGHMeMTLOAESDtufI,19961
+django/templatetags/l10n.py,sha256=GB5_u3ymAtzxUtAY8QLb_pcZrzie9ZxEca-1NuKIXBY,1563
+django/templatetags/static.py,sha256=W4Rqt3DN_YtXe6EoqO-GLy7WR7xd7z0JsoX-VT0vvjc,4730
+django/templatetags/tz.py,sha256=0uSwEcqywsn1FrdOtyIjSsSCCEqzW0CDVebP-tzIBiY,5357
+django/test/__init__.py,sha256=X12C98lKN5JW1-wms7B6OaMTo-Li90waQpjfJE1V3AE,834
+django/test/__pycache__/__init__.cpython-311.pyc,,
+django/test/__pycache__/client.cpython-311.pyc,,
+django/test/__pycache__/html.cpython-311.pyc,,
+django/test/__pycache__/runner.cpython-311.pyc,,
+django/test/__pycache__/selenium.cpython-311.pyc,,
+django/test/__pycache__/signals.cpython-311.pyc,,
+django/test/__pycache__/testcases.cpython-311.pyc,,
+django/test/__pycache__/utils.cpython-311.pyc,,
+django/test/client.py,sha256=SIjYoG2U1oD4Vfed9FXopcIJ_Gg44yeSMqT8RKVaZEE,55809
+django/test/html.py,sha256=W97B8kAeeY3tqWrttffWkI0bK-j-vn69l-79WCsMu9A,8869
+django/test/runner.py,sha256=fQvXdmfREscThS4_xGSBlr_yLd3PUfA5SGYVYvjgj2I,43032
+django/test/selenium.py,sha256=DtQxR_MqglIfkR5dMQXeNiC3l_vmgxllRuHBz_LKZNY,9685
+django/test/signals.py,sha256=qiQBLO_rjVITdLDV4WiDVqfdGGGa5BLV4jLOn0XHJFw,7368
+django/test/testcases.py,sha256=5Zqj1WsrOaOOfErJ6M4BrlNasYzjdaIW_tyz6i1ON-A,68586
+django/test/utils.py,sha256=fQmrEuIyFm87WutJgeERXojZtTySNVULgtRKBARWCYE,32702
+django/urls/__init__.py,sha256=BHyBIOD3E4_3Ng27SpXnRmqO3IzUqvBLCE4TTfs4wNs,1079
+django/urls/__pycache__/__init__.cpython-311.pyc,,
+django/urls/__pycache__/base.cpython-311.pyc,,
+django/urls/__pycache__/conf.cpython-311.pyc,,
+django/urls/__pycache__/converters.cpython-311.pyc,,
+django/urls/__pycache__/exceptions.cpython-311.pyc,,
+django/urls/__pycache__/resolvers.cpython-311.pyc,,
+django/urls/__pycache__/utils.cpython-311.pyc,,
+django/urls/base.py,sha256=Zx0VSoVkq-bwiC7izLEYf43yZ6uD9fs4E6UmJEHuyvQ,6191
+django/urls/conf.py,sha256=TFZCdC1G8KftDuB_I7smC7UH1QGKkm5o1uNAIKP2B7M,3426
+django/urls/converters.py,sha256=OTsqmA3uCrmY7Xh94HUaOjGCBttNIKKOJRfPYBm5twM,1782
+django/urls/exceptions.py,sha256=alLNjkORtAxneC00g4qnRpG5wouOHvJvGbymdpKtG_I,115
+django/urls/resolvers.py,sha256=5p7SVNVhh9FmuFke5IquHKPO3jSA29N_eiXzsMpi2xE,31518
+django/urls/utils.py,sha256=d1KSc6JVR-5Z8axg_yDgYKtkqObdbJwWNkhcB8x44Rs,2179
+django/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/utils/__pycache__/__init__.cpython-311.pyc,,
+django/utils/__pycache__/_os.cpython-311.pyc,,
+django/utils/__pycache__/archive.cpython-311.pyc,,
+django/utils/__pycache__/asyncio.cpython-311.pyc,,
+django/utils/__pycache__/autoreload.cpython-311.pyc,,
+django/utils/__pycache__/cache.cpython-311.pyc,,
+django/utils/__pycache__/choices.cpython-311.pyc,,
+django/utils/__pycache__/connection.cpython-311.pyc,,
+django/utils/__pycache__/crypto.cpython-311.pyc,,
+django/utils/__pycache__/datastructures.cpython-311.pyc,,
+django/utils/__pycache__/dateformat.cpython-311.pyc,,
+django/utils/__pycache__/dateparse.cpython-311.pyc,,
+django/utils/__pycache__/dates.cpython-311.pyc,,
+django/utils/__pycache__/deconstruct.cpython-311.pyc,,
+django/utils/__pycache__/decorators.cpython-311.pyc,,
+django/utils/__pycache__/deprecation.cpython-311.pyc,,
+django/utils/__pycache__/duration.cpython-311.pyc,,
+django/utils/__pycache__/encoding.cpython-311.pyc,,
+django/utils/__pycache__/feedgenerator.cpython-311.pyc,,
+django/utils/__pycache__/formats.cpython-311.pyc,,
+django/utils/__pycache__/functional.cpython-311.pyc,,
+django/utils/__pycache__/hashable.cpython-311.pyc,,
+django/utils/__pycache__/html.cpython-311.pyc,,
+django/utils/__pycache__/http.cpython-311.pyc,,
+django/utils/__pycache__/inspect.cpython-311.pyc,,
+django/utils/__pycache__/ipv6.cpython-311.pyc,,
+django/utils/__pycache__/itercompat.cpython-311.pyc,,
+django/utils/__pycache__/log.cpython-311.pyc,,
+django/utils/__pycache__/lorem_ipsum.cpython-311.pyc,,
+django/utils/__pycache__/module_loading.cpython-311.pyc,,
+django/utils/__pycache__/numberformat.cpython-311.pyc,,
+django/utils/__pycache__/regex_helper.cpython-311.pyc,,
+django/utils/__pycache__/safestring.cpython-311.pyc,,
+django/utils/__pycache__/termcolors.cpython-311.pyc,,
+django/utils/__pycache__/text.cpython-311.pyc,,
+django/utils/__pycache__/timesince.cpython-311.pyc,,
+django/utils/__pycache__/timezone.cpython-311.pyc,,
+django/utils/__pycache__/tree.cpython-311.pyc,,
+django/utils/__pycache__/version.cpython-311.pyc,,
+django/utils/__pycache__/xmlutils.cpython-311.pyc,,
+django/utils/_os.py,sha256=Q0d96RWFaQr6YqG00GulGqQ9M2Oni5WIjf_y4JnEWn8,2323
+django/utils/archive.py,sha256=nzcnfWgs8GNpBB5g-2_aWoXfzxGNkXZIkIej1AKT8BU,8302
+django/utils/asyncio.py,sha256=0glOg3eGmms-gUv04ZgDvZt19IZbdPBC64PnaKqeGDc,1138
+django/utils/autoreload.py,sha256=S4Gfud4xl0pW6Gd-0E7La5pjFC7cWqy8h0wwE-W56QY,24429
+django/utils/cache.py,sha256=xyazhD17lfCRXbWHnNWbI1WMHvwyXLUupRzG670y8gU,16583
+django/utils/choices.py,sha256=OgXb_QqEjzf_ODgEzZqkL5yGJLHVQtwh9FAUPvKoUWQ,4202
+django/utils/connection.py,sha256=2kqA6M_EObbZg6QKMXhX6p4YXG9RiPTUHwwN3mumhDY,2554
+django/utils/crypto.py,sha256=91KEDCMKAh3kKAMxUv2eQQKMEj-EgbMWRE2lVjmAzgY,2662
+django/utils/datastructures.py,sha256=mEt2-kg3zOQ24fW7ltxZDFaatZZyTSeJP9WAGWOg6UM,10267
+django/utils/dateformat.py,sha256=FvIRPWcVlSTQfVnPARPbV1BtQ1OX3Z3i49Iiyx9JuDI,10118
+django/utils/dateparse.py,sha256=oWTWbJax4NP1uY7tCGPSgnyAkoGxnXf1snEh-kfCkiQ,5356
+django/utils/dates.py,sha256=zHUHeOkxuo53rTvHG3dWMLRfVyfaMLBIt5xmA4E_Ids,2179
+django/utils/deconstruct.py,sha256=R3ks8L-Cif9-qyNwy-2R6KWf9UmcGDSiMGX-N6CbLOA,2126
+django/utils/decorators.py,sha256=NzaeY0m6u-HXXwRkbGvdX0IiZ8wNDYV8fDR8w42Roec,8328
+django/utils/deprecation.py,sha256=aNLOljxbMxDHWWr6Sy1ul2VV90Fzugc6e6YZGw0FfEo,4876
+django/utils/duration.py,sha256=HK5E36F1GGdPchCqHsmloYhrHX_ByyITvOHyuxtElSE,1230
+django/utils/encoding.py,sha256=DLjcAjvBxrz5Jr5d8T2XnEUccseRVHTTXOm-zf-FVD4,8793
+django/utils/feedgenerator.py,sha256=hyzzlLrh6uSJhfhRJF2944Sb0HimXRGria76u5tlSkY,18089
+django/utils/formats.py,sha256=FmPUj3dfL2gCH2ijcWtcesYKbsi2-EbHGLGyHvGOJA0,10255
+django/utils/functional.py,sha256=URFZkoTNJmOlm_ay9872-_lEgV1ewunZS9GKSJRg-e8,14541
+django/utils/hashable.py,sha256=HzcLr4YPZGls_TLt0aQra7cCHcFp-hpTEOcOJ_DTQj0,738
+django/utils/html.py,sha256=KMBHTj4o0_p8QWs_rEmmt1HOngAfBUfc66_ajA-tRwQ,17544
+django/utils/http.py,sha256=xlxAp4EEEt4Axc2tWaVdtNedNsZaBhBozWqnCdErkXw,13547
+django/utils/inspect.py,sha256=p7Uy3KO6TuR1SuxDwp6qzIgj7ML_Si_-r3BynvHFadA,2708
+django/utils/ipv6.py,sha256=VN3hdrlGKo6TQLTa6Kvgz27KzTkdYMOBJmuc8QTXbpU,1823
+django/utils/itercompat.py,sha256=mXmO77Sd3P_0VN6ox4kAorZ2vo2CjKRiFBuDbIqu1os,532
+django/utils/log.py,sha256=py5EpX1FVgBJ37bnSSQKKJE0z8zW4Iw8FXqBuPxCJtY,8329
+django/utils/lorem_ipsum.py,sha256=yUtBgKhshftIpPg04pc1IrLpOBydZIf7g0isFCIJZqk,5473
+django/utils/module_loading.py,sha256=-a7qOb5rpp-Lw_51vyIPSdb7R40B16Er1Zc1C_a6ibY,3820
+django/utils/numberformat.py,sha256=8LqSMmfxaN0PYSTTES6UT_ATerfDYQn7Ya4NI70gMaU,3781
+django/utils/regex_helper.py,sha256=FsGQkHjDNJmYnCDPT2f3b07hdp4RRNTMB_KgSRe-8hs,12772
+django/utils/safestring.py,sha256=pfrpF3uJeAWcF-0naIPRr6QjDomUB8yc4k1gSN-zERA,2178
+django/utils/termcolors.py,sha256=vvQbUH7GsFofGRSiKQwx4YvgE4yZMtAGRVz9QPDfisA,7386
+django/utils/text.py,sha256=tYlKGQlM5KOyBEqsW3he9yeGCBoDSPPU-2kJZmCNEb4,14586
+django/utils/timesince.py,sha256=j9B_wSnsdS3ZXn9pt9GImOJDpgO61YMr_jtnUpZDx0g,4914
+django/utils/timezone.py,sha256=Wg4eIhEHAsOMEKlzfSS_aYPf-h70DYqOqnmRDG1TbbE,7295
+django/utils/translation/__init__.py,sha256=IzuMZHXY059T4hOcsqQjDmSOT2itEQb8OBsNi88aURA,8878
+django/utils/translation/__pycache__/__init__.cpython-311.pyc,,
+django/utils/translation/__pycache__/reloader.cpython-311.pyc,,
+django/utils/translation/__pycache__/template.cpython-311.pyc,,
+django/utils/translation/__pycache__/trans_null.cpython-311.pyc,,
+django/utils/translation/__pycache__/trans_real.cpython-311.pyc,,
+django/utils/translation/reloader.py,sha256=oVM0xenn3fraUomMEFucvwlbr5UGYUijWnUn6FL55Zc,1114
+django/utils/translation/template.py,sha256=TOfPNT62RnUbUG64a_6d_VQ7tsDC1_F1TCopw_HwlcA,10549
+django/utils/translation/trans_null.py,sha256=niy_g1nztS2bPsINqK7_g0HcpI_w6hL-c8_hqpC7U7s,1287
+django/utils/translation/trans_real.py,sha256=nt-w0rGgdcynyljdBGPqhMaDsdtvR_IyZiAvO4J2LS4,22273
+django/utils/tree.py,sha256=v8sNUsnsG2Loi9xBIIk0GmV5yN7VWOGTzbmk8BOEs6E,4394
+django/utils/version.py,sha256=YJ41J-BggYvEJNpTS8pU5x7utd-327YAjusfdTkTMrI,3737
+django/utils/xmlutils.py,sha256=LsggeI4vhln3An_YXNBk2cCwKLQgMe-O_3L--j3o3GM,1172
+django/views/__init__.py,sha256=GIq6CKUBCbGpQVyK4xIoaAUDPrmRvbBPSX_KSHk0Bb4,63
+django/views/__pycache__/__init__.cpython-311.pyc,,
+django/views/__pycache__/csrf.cpython-311.pyc,,
+django/views/__pycache__/debug.cpython-311.pyc,,
+django/views/__pycache__/defaults.cpython-311.pyc,,
+django/views/__pycache__/i18n.cpython-311.pyc,,
+django/views/__pycache__/static.cpython-311.pyc,,
+django/views/csrf.py,sha256=PwZPfYD-zI0SL19etlwAcpD4LOMp8Flu1qPGgHlrsBg,3425
+django/views/debug.py,sha256=4oMlptUiQdp1oMeC3aQY6z-6r_F91iuEg1YKrZUsLc8,25670
+django/views/decorators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+django/views/decorators/__pycache__/__init__.cpython-311.pyc,,
+django/views/decorators/__pycache__/cache.cpython-311.pyc,,
+django/views/decorators/__pycache__/clickjacking.cpython-311.pyc,,
+django/views/decorators/__pycache__/common.cpython-311.pyc,,
+django/views/decorators/__pycache__/csrf.cpython-311.pyc,,
+django/views/decorators/__pycache__/debug.cpython-311.pyc,,
+django/views/decorators/__pycache__/gzip.cpython-311.pyc,,
+django/views/decorators/__pycache__/http.cpython-311.pyc,,
+django/views/decorators/__pycache__/vary.cpython-311.pyc,,
+django/views/decorators/cache.py,sha256=4cWEWW88qPv57St9Wwmv0aK0vVxD-7aevFOQc8z4pQs,2821
+django/views/decorators/clickjacking.py,sha256=3w8djeDoQUK67uDfIzi9jdlds_ZdekwDMIV2IM8NBWk,2555
+django/views/decorators/common.py,sha256=Kcj1Q-aPTBLGMW_kkeUleRiYiEZCg7uoP_UexklyyQA,739
+django/views/decorators/csrf.py,sha256=q9lXnlNkbm7Hlg4FRx1pesf64sNpCIC52mCqY7xduZo,2324
+django/views/decorators/debug.py,sha256=jvKimgFDSVzCN3RWA1X5Ry7BSADFA21K3A2RjUsJy7E,5256
+django/views/decorators/gzip.py,sha256=PtpSGd8BePa1utGqvKMFzpLtZJxpV2_Jej8llw5bCJY,253
+django/views/decorators/http.py,sha256=vaoIxGGIn6kychggji7CmdmVl5JXvNs-7FUUVNv5w9Y,6533
+django/views/decorators/vary.py,sha256=DGR1eA8mSaXM8kgMJta4XnzCznJIrW1_KDMrd4aqCTM,1201
+django/views/defaults.py,sha256=BXT36auw8XF5ZwqdU0akzX5ITFBWhuy8idT8YGkCo_I,4718
+django/views/generic/__init__.py,sha256=VwQKUbBFJktiq5J2fo3qRNzRc0STfcMRPChlLPYAkkE,886
+django/views/generic/__pycache__/__init__.cpython-311.pyc,,
+django/views/generic/__pycache__/base.cpython-311.pyc,,
+django/views/generic/__pycache__/dates.cpython-311.pyc,,
+django/views/generic/__pycache__/detail.cpython-311.pyc,,
+django/views/generic/__pycache__/edit.cpython-311.pyc,,
+django/views/generic/__pycache__/list.cpython-311.pyc,,
+django/views/generic/base.py,sha256=1Xl_88BYSvW8hfP0S_UQF3mCHEuSDLh4ooKEA7pop7U,9303
+django/views/generic/dates.py,sha256=xTAGETRksrGbGreC6Y7CAHMjMQLAgOoxPfxocPGrMqQ,26921
+django/views/generic/detail.py,sha256=XTkGIGWpaGxbudMvGOrFKC6p8sl_EKhn13IA5g_1z8w,7022
+django/views/generic/edit.py,sha256=uyRw11siRsNRXz0id4A2crJeDGUncQ8Ce4fiWbDgtDg,9040
+django/views/generic/list.py,sha256=KyVxf8MXaQg2uYG3vmIVQXhSkq7PiTM6sTkJlYKy1mE,8009
+django/views/i18n.py,sha256=Ee5uipB3ykz6ScxLNscCyXItJleAKbO9FQEBwyQnAfc,8999
+django/views/static.py,sha256=dfEj3tr0tBN6fW02T0z43fszVSj1DB6Gxe-C3V4VYPo,4055
+django/views/templates/csrf_403.html,sha256=lrD9CeNoW5UOC1cay8RJzydMMWF12BMMSpz5UDufNAk,2856
+django/views/templates/default_urlconf.html,sha256=P8dRIQu9i-K38Gsk-OP7nAMR4vGtMd2-Pw6cWjKnhN8,12521
+django/views/templates/directory_index.html,sha256=0CGI4FUy9n_Yo2e7U2vWeKCLsUgizBmoqHseNQxxe04,653
+django/views/templates/i18n_catalog.js,sha256=WTPJxawKwdORo12g9I_mUn4YSU6Xx-DCx6E06yKBKZQ,2785
+django/views/templates/technical_404.html,sha256=da7h7kPnDufG3D1KM5JzySVHEm4mTYx3UxV8KdPSz_c,2816
+django/views/templates/technical_500.html,sha256=pHmxLtEwFNAw4zt3k97ty5dvYq9q0E0p1nFF1pRYdpI,18138
+django/views/templates/technical_500.txt,sha256=b0ihE_FS7YtfAFOXU_yk0-CTgUmZ4ZkWVfkFHdEQXQI,3712
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/REQUESTED b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/REQUESTED
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/WHEEL b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/WHEEL
new file mode 100644
index 00000000..e7fa31b6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/WHEEL
@@ -0,0 +1,5 @@
+Wheel-Version: 1.0
+Generator: setuptools (80.9.0)
+Root-Is-Purelib: true
+Tag: py3-none-any
+
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/entry_points.txt b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/entry_points.txt
new file mode 100644
index 00000000..eaeb88e2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/entry_points.txt
@@ -0,0 +1,2 @@
+[console_scripts]
+django-admin = django.core.management:execute_from_command_line
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE
new file mode 100644
index 00000000..5f4f225d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) Django Software Foundation and individual 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:
+
+ 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 Django 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/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE.python b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE.python
new file mode 100644
index 00000000..2fc28e87
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/licenses/LICENSE.python
@@ -0,0 +1,288 @@
+Django is licensed under the three-clause BSD license; see the file
+LICENSE for details.
+
+Django includes code from the Python standard library, which is licensed under
+the Python license, a permissive open source license. The copyright and license
+is included below for compliance with Python's terms.
+
+----------------------------------------------------------------------
+
+Copyright (c) 2001-present Python Software Foundation; All Rights Reserved
+
+A. HISTORY OF THE SOFTWARE
+==========================
+
+Python was created in the early 1990s by Guido van Rossum at Stichting
+Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
+as a successor of a language called ABC. Guido remains Python's
+principal author, although it includes many contributions from others.
+
+In 1995, Guido continued his work on Python at the Corporation for
+National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
+in Reston, Virginia where he released several versions of the
+software.
+
+In May 2000, Guido and the Python core development team moved to
+BeOpen.com to form the BeOpen PythonLabs team. In October of the same
+year, the PythonLabs team moved to Digital Creations, which became
+Zope Corporation. In 2001, the Python Software Foundation (PSF, see
+https://www.python.org/psf/) was formed, a non-profit organization
+created specifically to own Python-related Intellectual Property.
+Zope Corporation was a sponsoring member of the PSF.
+
+All Python releases are Open Source (see https://opensource.org for
+the Open Source Definition). Historically, most, but not all, Python
+releases have also been GPL-compatible; the table below summarizes
+the various releases.
+
+ Release Derived Year Owner GPL-
+ from compatible? (1)
+
+ 0.9.0 thru 1.2 1991-1995 CWI yes
+ 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
+ 1.6 1.5.2 2000 CNRI no
+ 2.0 1.6 2000 BeOpen.com no
+ 1.6.1 1.6 2001 CNRI yes (2)
+ 2.1 2.0+1.6.1 2001 PSF no
+ 2.0.1 2.0+1.6.1 2001 PSF yes
+ 2.1.1 2.1+2.0.1 2001 PSF yes
+ 2.1.2 2.1.1 2002 PSF yes
+ 2.1.3 2.1.2 2002 PSF yes
+ 2.2 and above 2.1.1 2001-now PSF yes
+
+Footnotes:
+
+(1) GPL-compatible doesn't mean that we're distributing Python under
+ the GPL. All Python licenses, unlike the GPL, let you distribute
+ a modified version without making your changes open source. The
+ GPL-compatible licenses make it possible to combine Python with
+ other software that is released under the GPL; the others don't.
+
+(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
+ because its license has a choice of law clause. According to
+ CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
+ is "not incompatible" with the GPL.
+
+Thanks to the many outside volunteers who have worked under Guido's
+direction to make these releases possible.
+
+
+B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
+===============================================================
+
+Python software and documentation are licensed under the
+Python Software Foundation License Version 2.
+
+Starting with Python 3.8.6, examples, recipes, and other code in
+the documentation are dual licensed under the PSF License Version 2
+and the Zero-Clause BSD license.
+
+Some software incorporated into Python is under different licenses.
+The licenses are listed with code falling under that license.
+
+
+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 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.
+
+
+BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
+-------------------------------------------
+
+BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
+
+1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
+office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
+Individual or Organization ("Licensee") accessing and otherwise using
+this software in source or binary form and its associated
+documentation ("the Software").
+
+2. Subject to the terms and conditions of this BeOpen Python License
+Agreement, BeOpen hereby grants Licensee a non-exclusive,
+royalty-free, world-wide license to reproduce, analyze, test, perform
+and/or display publicly, prepare derivative works, distribute, and
+otherwise use the Software alone or in any derivative version,
+provided, however, that the BeOpen Python License is retained in the
+Software, alone or in any derivative version prepared by Licensee.
+
+3. BeOpen is making the Software available to Licensee on an "AS IS"
+basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
+SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
+AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
+DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+5. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+
+6. This License Agreement shall be governed by and interpreted in all
+respects by the law of the State of California, excluding conflict of
+law provisions. Nothing in this License Agreement shall be deemed to
+create any relationship of agency, partnership, or joint venture
+between BeOpen and Licensee. This License Agreement does not grant
+permission to use BeOpen trademarks or trade names in a trademark
+sense to endorse or promote products or services of Licensee, or any
+third party. As an exception, the "BeOpen Python" logos available at
+http://www.pythonlabs.com/logos.html may be used according to the
+permissions granted on that web page.
+
+7. By copying, installing or otherwise using the software, Licensee
+agrees to be bound by the terms and conditions of this License
+Agreement.
+
+
+CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
+---------------------------------------
+
+1. This LICENSE AGREEMENT is between the Corporation for National
+Research Initiatives, having an office at 1895 Preston White Drive,
+Reston, VA 20191 ("CNRI"), and the Individual or Organization
+("Licensee") accessing and otherwise using Python 1.6.1 software in
+source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, CNRI
+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 1.6.1
+alone or in any derivative version, provided, however, that CNRI's
+License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
+1995-2001 Corporation for National Research Initiatives; All Rights
+Reserved" are retained in Python 1.6.1 alone or in any derivative
+version prepared by Licensee. Alternately, in lieu of CNRI's License
+Agreement, Licensee may substitute the following text (omitting the
+quotes): "Python 1.6.1 is made available subject to the terms and
+conditions in CNRI's License Agreement. This Agreement together with
+Python 1.6.1 may be located on the internet using the following
+unique, persistent identifier (known as a handle): 1895.22/1013. This
+Agreement may also be obtained from a proxy server on the internet
+using the following URL: http://hdl.handle.net/1895.22/1013".
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python 1.6.1 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 1.6.1.
+
+4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
+basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
+1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
+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. This License Agreement shall be governed by the federal
+intellectual property law of the United States, including without
+limitation the federal copyright law, and, to the extent such
+U.S. federal law does not apply, by the law of the Commonwealth of
+Virginia, excluding Virginia's conflict of law provisions.
+Notwithstanding the foregoing, with regard to derivative works based
+on Python 1.6.1 that incorporate non-separable material that was
+previously distributed under the GNU General Public License (GPL), the
+law of the Commonwealth of Virginia shall govern this License
+Agreement only as to issues arising under or with respect to
+Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
+License Agreement shall be deemed to create any relationship of
+agency, partnership, or joint venture between CNRI and Licensee. This
+License Agreement does not grant permission to use CNRI trademarks or
+trade name in a trademark sense to endorse or promote products or
+services of Licensee, or any third party.
+
+8. By clicking on the "ACCEPT" button where indicated, or by copying,
+installing or otherwise using Python 1.6.1, Licensee agrees to be
+bound by the terms and conditions of this License Agreement.
+
+ ACCEPT
+
+
+CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
+--------------------------------------------------
+
+Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
+The Netherlands. All rights reserved.
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of Stichting Mathematisch
+Centrum or CWI not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior
+permission.
+
+STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
+THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
+----------------------------------------------------------------------
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
diff --git a/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/top_level.txt b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/top_level.txt
new file mode 100644
index 00000000..d3e4ba56
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django-5.2.8.dist-info/top_level.txt
@@ -0,0 +1 @@
+django
diff --git a/backend/.venv/lib/python3.11/site-packages/django/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/__init__.py
new file mode 100644
index 00000000..3d29f0e2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/__init__.py
@@ -0,0 +1,24 @@
+from django.utils.version import get_version
+
+VERSION = (5, 2, 8, "final", 0)
+
+__version__ = get_version(VERSION)
+
+
+def setup(set_prefix=True):
+ """
+ Configure the settings (this happens as a side effect of accessing the
+ first setting), configure logging and populate the app registry.
+ Set the thread-local urlresolvers script prefix if `set_prefix` is True.
+ """
+ from django.apps import apps
+ from django.conf import settings
+ from django.urls import set_script_prefix
+ from django.utils.log import configure_logging
+
+ configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
+ if set_prefix:
+ set_script_prefix(
+ "/" if settings.FORCE_SCRIPT_NAME is None else settings.FORCE_SCRIPT_NAME
+ )
+ apps.populate(settings.INSTALLED_APPS)
diff --git a/backend/.venv/lib/python3.11/site-packages/django/__main__.py b/backend/.venv/lib/python3.11/site-packages/django/__main__.py
new file mode 100644
index 00000000..74151438
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/__main__.py
@@ -0,0 +1,10 @@
+"""
+Invokes django-admin when the django module is run as a script.
+
+Example: python -m django check
+"""
+
+from django.core import management
+
+if __name__ == "__main__":
+ management.execute_from_command_line()
diff --git a/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..733d183d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__main__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__main__.cpython-311.pyc
new file mode 100644
index 00000000..a6101135
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/__main__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/__pycache__/shortcuts.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/shortcuts.cpython-311.pyc
new file mode 100644
index 00000000..98034b61
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/__pycache__/shortcuts.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/apps/__init__.py
new file mode 100644
index 00000000..96674be7
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/apps/__init__.py
@@ -0,0 +1,4 @@
+from .config import AppConfig
+from .registry import apps
+
+__all__ = ["AppConfig", "apps"]
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..2d12f4e6
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/config.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/config.cpython-311.pyc
new file mode 100644
index 00000000..8ec6945c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/config.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/registry.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/registry.cpython-311.pyc
new file mode 100644
index 00000000..bfe05499
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/apps/__pycache__/registry.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/config.py b/backend/.venv/lib/python3.11/site-packages/django/apps/config.py
new file mode 100644
index 00000000..28e50e52
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/apps/config.py
@@ -0,0 +1,274 @@
+import inspect
+import os
+from importlib import import_module
+
+from django.core.exceptions import ImproperlyConfigured
+from django.utils.functional import cached_property
+from django.utils.module_loading import import_string, module_has_submodule
+
+APPS_MODULE_NAME = "apps"
+MODELS_MODULE_NAME = "models"
+
+
+class AppConfig:
+ """Class representing a Django application and its configuration."""
+
+ def __init__(self, app_name, app_module):
+ # Full Python path to the application e.g. 'django.contrib.admin'.
+ self.name = app_name
+
+ # Root module for the application e.g. .
+ self.module = app_module
+
+ # Reference to the Apps registry that holds this AppConfig. Set by the
+ # registry when it registers the AppConfig instance.
+ self.apps = None
+
+ # The following attributes could be defined at the class level in a
+ # subclass, hence the test-and-set pattern.
+
+ # Last component of the Python path to the application e.g. 'admin'.
+ # This value must be unique across a Django project.
+ if not hasattr(self, "label"):
+ self.label = app_name.rpartition(".")[2]
+ if not self.label.isidentifier():
+ raise ImproperlyConfigured(
+ "The app label '%s' is not a valid Python identifier." % self.label
+ )
+
+ # Human-readable name for the application e.g. "Admin".
+ if not hasattr(self, "verbose_name"):
+ self.verbose_name = self.label.title()
+
+ # Filesystem path to the application directory e.g.
+ # '/path/to/django/contrib/admin'.
+ if not hasattr(self, "path"):
+ self.path = self._path_from_module(app_module)
+
+ # Module containing models e.g. . Set by import_models().
+ # None if the application doesn't have a models module.
+ self.models_module = None
+
+ # Mapping of lowercase model names to model classes. Initially set to
+ # None to prevent accidental access before import_models() runs.
+ self.models = None
+
+ def __repr__(self):
+ return "<%s: %s>" % (self.__class__.__name__, self.label)
+
+ @cached_property
+ def default_auto_field(self):
+ from django.conf import settings
+
+ return settings.DEFAULT_AUTO_FIELD
+
+ @property
+ def _is_default_auto_field_overridden(self):
+ return self.__class__.default_auto_field is not AppConfig.default_auto_field
+
+ def _path_from_module(self, module):
+ """Attempt to determine app's filesystem path from its module."""
+ # See #21874 for extended discussion of the behavior of this method in
+ # various cases.
+ # Convert to list because __path__ may not support indexing.
+ paths = list(getattr(module, "__path__", []))
+ if len(paths) != 1:
+ filename = getattr(module, "__file__", None)
+ if filename is not None:
+ paths = [os.path.dirname(filename)]
+ else:
+ # For unknown reasons, sometimes the list returned by __path__
+ # contains duplicates that must be removed (#25246).
+ paths = list(set(paths))
+ if len(paths) > 1:
+ raise ImproperlyConfigured(
+ "The app module %r has multiple filesystem locations (%r); "
+ "you must configure this app with an AppConfig subclass "
+ "with a 'path' class attribute." % (module, paths)
+ )
+ elif not paths:
+ raise ImproperlyConfigured(
+ "The app module %r has no filesystem location, "
+ "you must configure this app with an AppConfig subclass "
+ "with a 'path' class attribute." % module
+ )
+ return paths[0]
+
+ @classmethod
+ def create(cls, entry):
+ """
+ Factory that creates an app config from an entry in INSTALLED_APPS.
+ """
+ # create() eventually returns app_config_class(app_name, app_module).
+ app_config_class = None
+ app_name = None
+ app_module = None
+
+ # If import_module succeeds, entry points to the app module.
+ try:
+ app_module = import_module(entry)
+ except Exception:
+ pass
+ else:
+ # If app_module has an apps submodule that defines a single
+ # AppConfig subclass, use it automatically.
+ # To prevent this, an AppConfig subclass can declare a class
+ # variable default = False.
+ # If the apps module defines more than one AppConfig subclass,
+ # the default one can declare default = True.
+ if module_has_submodule(app_module, APPS_MODULE_NAME):
+ mod_path = "%s.%s" % (entry, APPS_MODULE_NAME)
+ mod = import_module(mod_path)
+ # Check if there's exactly one AppConfig candidate,
+ # excluding those that explicitly define default = False.
+ app_configs = [
+ (name, candidate)
+ for name, candidate in inspect.getmembers(mod, inspect.isclass)
+ if (
+ issubclass(candidate, cls)
+ and candidate is not cls
+ and getattr(candidate, "default", True)
+ )
+ ]
+ if len(app_configs) == 1:
+ app_config_class = app_configs[0][1]
+ else:
+ # Check if there's exactly one AppConfig subclass,
+ # among those that explicitly define default = True.
+ app_configs = [
+ (name, candidate)
+ for name, candidate in app_configs
+ if getattr(candidate, "default", False)
+ ]
+ if len(app_configs) > 1:
+ candidates = [repr(name) for name, _ in app_configs]
+ raise RuntimeError(
+ "%r declares more than one default AppConfig: "
+ "%s." % (mod_path, ", ".join(candidates))
+ )
+ elif len(app_configs) == 1:
+ app_config_class = app_configs[0][1]
+
+ # Use the default app config class if we didn't find anything.
+ if app_config_class is None:
+ app_config_class = cls
+ app_name = entry
+
+ # If import_string succeeds, entry is an app config class.
+ if app_config_class is None:
+ try:
+ app_config_class = import_string(entry)
+ except Exception:
+ pass
+ # If both import_module and import_string failed, it means that entry
+ # doesn't have a valid value.
+ if app_module is None and app_config_class is None:
+ # If the last component of entry starts with an uppercase letter,
+ # then it was likely intended to be an app config class; if not,
+ # an app module. Provide a nice error message in both cases.
+ mod_path, _, cls_name = entry.rpartition(".")
+ if mod_path and cls_name[0].isupper():
+ # We could simply re-trigger the string import exception, but
+ # we're going the extra mile and providing a better error
+ # message for typos in INSTALLED_APPS.
+ # This may raise ImportError, which is the best exception
+ # possible if the module at mod_path cannot be imported.
+ mod = import_module(mod_path)
+ candidates = [
+ repr(name)
+ for name, candidate in inspect.getmembers(mod, inspect.isclass)
+ if issubclass(candidate, cls) and candidate is not cls
+ ]
+ msg = "Module '%s' does not contain a '%s' class." % (
+ mod_path,
+ cls_name,
+ )
+ if candidates:
+ msg += " Choices are: %s." % ", ".join(candidates)
+ raise ImportError(msg)
+ else:
+ # Re-trigger the module import exception.
+ import_module(entry)
+
+ # Check for obvious errors. (This check prevents duck typing, but
+ # it could be removed if it became a problem in practice.)
+ if not issubclass(app_config_class, AppConfig):
+ raise ImproperlyConfigured("'%s' isn't a subclass of AppConfig." % entry)
+
+ # Obtain app name here rather than in AppClass.__init__ to keep
+ # all error checking for entries in INSTALLED_APPS in one place.
+ if app_name is None:
+ try:
+ app_name = app_config_class.name
+ except AttributeError:
+ raise ImproperlyConfigured("'%s' must supply a name attribute." % entry)
+
+ # Ensure app_name points to a valid module.
+ try:
+ app_module = import_module(app_name)
+ except ImportError:
+ raise ImproperlyConfigured(
+ "Cannot import '%s'. Check that '%s.%s.name' is correct."
+ % (
+ app_name,
+ app_config_class.__module__,
+ app_config_class.__qualname__,
+ )
+ )
+
+ # Entry is a path to an app config class.
+ return app_config_class(app_name, app_module)
+
+ def get_model(self, model_name, require_ready=True):
+ """
+ Return the model with the given case-insensitive model_name.
+
+ Raise LookupError if no model exists with this name.
+ """
+ if require_ready:
+ self.apps.check_models_ready()
+ else:
+ self.apps.check_apps_ready()
+ try:
+ return self.models[model_name.lower()]
+ except KeyError:
+ raise LookupError(
+ "App '%s' doesn't have a '%s' model." % (self.label, model_name)
+ )
+
+ def get_models(self, include_auto_created=False, include_swapped=False):
+ """
+ Return an iterable of models.
+
+ By default, the following models aren't included:
+
+ - auto-created models for many-to-many relations without
+ an explicit intermediate table,
+ - models that have been swapped out.
+
+ Set the corresponding keyword argument to True to include such models.
+ Keyword arguments aren't documented; they're a private API.
+ """
+ self.apps.check_models_ready()
+ for model in self.models.values():
+ if model._meta.auto_created and not include_auto_created:
+ continue
+ if model._meta.swapped and not include_swapped:
+ continue
+ yield model
+
+ def import_models(self):
+ # Dictionary of models for this app, primarily maintained in the
+ # 'all_models' attribute of the Apps this AppConfig is attached to.
+ self.models = self.apps.all_models[self.label]
+
+ if module_has_submodule(self.module, MODELS_MODULE_NAME):
+ models_module_name = "%s.%s" % (self.name, MODELS_MODULE_NAME)
+ self.models_module = import_module(models_module_name)
+
+ def ready(self):
+ """
+ Override this method in subclasses to run code when Django starts.
+ """
diff --git a/backend/.venv/lib/python3.11/site-packages/django/apps/registry.py b/backend/.venv/lib/python3.11/site-packages/django/apps/registry.py
new file mode 100644
index 00000000..92de6075
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/apps/registry.py
@@ -0,0 +1,437 @@
+import functools
+import sys
+import threading
+import warnings
+from collections import Counter, defaultdict
+from functools import partial
+
+from django.core.exceptions import AppRegistryNotReady, ImproperlyConfigured
+
+from .config import AppConfig
+
+
+class Apps:
+ """
+ A registry that stores the configuration of installed applications.
+
+ It also keeps track of models, e.g. to provide reverse relations.
+ """
+
+ def __init__(self, installed_apps=()):
+ # installed_apps is set to None when creating the main registry
+ # because it cannot be populated at that point. Other registries must
+ # provide a list of installed apps and are populated immediately.
+ if installed_apps is None and hasattr(sys.modules[__name__], "apps"):
+ raise RuntimeError("You must supply an installed_apps argument.")
+
+ # Mapping of app labels => model names => model classes. Every time a
+ # model is imported, ModelBase.__new__ calls apps.register_model which
+ # creates an entry in all_models. All imported models are registered,
+ # regardless of whether they're defined in an installed application
+ # and whether the registry has been populated. Since it isn't possible
+ # to reimport a module safely (it could reexecute initialization code)
+ # all_models is never overridden or reset.
+ self.all_models = defaultdict(dict)
+
+ # Mapping of labels to AppConfig instances for installed apps.
+ self.app_configs = {}
+
+ # Stack of app_configs. Used to store the current state in
+ # set_available_apps and set_installed_apps.
+ self.stored_app_configs = []
+
+ # Whether the registry is populated.
+ self.apps_ready = self.models_ready = self.ready = False
+ # For the autoreloader.
+ self.ready_event = threading.Event()
+
+ # Lock for thread-safe population.
+ self._lock = threading.RLock()
+ self.loading = False
+
+ # Maps ("app_label", "modelname") tuples to lists of functions to be
+ # called when the corresponding model is ready. Used by this class's
+ # `lazy_model_operation()` and `do_pending_operations()` methods.
+ self._pending_operations = defaultdict(list)
+
+ # Populate apps and models, unless it's the main registry.
+ if installed_apps is not None:
+ self.populate(installed_apps)
+
+ def populate(self, installed_apps=None):
+ """
+ Load application configurations and models.
+
+ Import each application module and then each model module.
+
+ It is thread-safe and idempotent, but not reentrant.
+ """
+ if self.ready:
+ return
+
+ # populate() might be called by two threads in parallel on servers
+ # that create threads before initializing the WSGI callable.
+ with self._lock:
+ if self.ready:
+ return
+
+ # An RLock prevents other threads from entering this section. The
+ # compare and set operation below is atomic.
+ if self.loading:
+ # Prevent reentrant calls to avoid running AppConfig.ready()
+ # methods twice.
+ raise RuntimeError("populate() isn't reentrant")
+ self.loading = True
+
+ # Phase 1: initialize app configs and import app modules.
+ for entry in installed_apps:
+ if isinstance(entry, AppConfig):
+ app_config = entry
+ else:
+ app_config = AppConfig.create(entry)
+ if app_config.label in self.app_configs:
+ raise ImproperlyConfigured(
+ "Application labels aren't unique, "
+ "duplicates: %s" % app_config.label
+ )
+
+ self.app_configs[app_config.label] = app_config
+ app_config.apps = self
+
+ # Check for duplicate app names.
+ counts = Counter(
+ app_config.name for app_config in self.app_configs.values()
+ )
+ duplicates = [name for name, count in counts.most_common() if count > 1]
+ if duplicates:
+ raise ImproperlyConfigured(
+ "Application names aren't unique, "
+ "duplicates: %s" % ", ".join(duplicates)
+ )
+
+ self.apps_ready = True
+
+ # Phase 2: import models modules.
+ for app_config in self.app_configs.values():
+ app_config.import_models()
+
+ self.clear_cache()
+
+ self.models_ready = True
+
+ # Phase 3: run ready() methods of app configs.
+ for app_config in self.get_app_configs():
+ app_config.ready()
+
+ self.ready = True
+ self.ready_event.set()
+
+ def check_apps_ready(self):
+ """Raise an exception if all apps haven't been imported yet."""
+ if not self.apps_ready:
+ from django.conf import settings
+
+ # If "not ready" is due to unconfigured settings, accessing
+ # INSTALLED_APPS raises a more helpful ImproperlyConfigured
+ # exception.
+ settings.INSTALLED_APPS
+ raise AppRegistryNotReady("Apps aren't loaded yet.")
+
+ def check_models_ready(self):
+ """Raise an exception if all models haven't been imported yet."""
+ if not self.models_ready:
+ raise AppRegistryNotReady("Models aren't loaded yet.")
+
+ def get_app_configs(self):
+ """Import applications and return an iterable of app configs."""
+ self.check_apps_ready()
+ return self.app_configs.values()
+
+ def get_app_config(self, app_label):
+ """
+ Import applications and returns an app config for the given label.
+
+ Raise LookupError if no application exists with this label.
+ """
+ self.check_apps_ready()
+ try:
+ return self.app_configs[app_label]
+ except KeyError:
+ message = "No installed app with label '%s'." % app_label
+ for app_config in self.get_app_configs():
+ if app_config.name == app_label:
+ message += " Did you mean '%s'?" % app_config.label
+ break
+ raise LookupError(message)
+
+ # This method is performance-critical at least for Django's test suite.
+ @functools.cache
+ def get_models(self, include_auto_created=False, include_swapped=False):
+ """
+ Return a list of all installed models.
+
+ By default, the following models aren't included:
+
+ - auto-created models for many-to-many relations without
+ an explicit intermediate table,
+ - models that have been swapped out.
+
+ Set the corresponding keyword argument to True to include such models.
+ """
+ self.check_models_ready()
+
+ result = []
+ for app_config in self.app_configs.values():
+ result.extend(app_config.get_models(include_auto_created, include_swapped))
+ return result
+
+ def get_model(self, app_label, model_name=None, require_ready=True):
+ """
+ Return the model matching the given app_label and model_name.
+
+ As a shortcut, app_label may be in the form ..
+
+ model_name is case-insensitive.
+
+ Raise LookupError if no application exists with this label, or no
+ model exists with this name in the application. Raise ValueError if
+ called with a single argument that doesn't contain exactly one dot.
+ """
+ if require_ready:
+ self.check_models_ready()
+ else:
+ self.check_apps_ready()
+
+ if model_name is None:
+ app_label, model_name = app_label.split(".")
+
+ app_config = self.get_app_config(app_label)
+
+ if not require_ready and app_config.models is None:
+ app_config.import_models()
+
+ return app_config.get_model(model_name, require_ready=require_ready)
+
+ def register_model(self, app_label, model):
+ # Since this method is called when models are imported, it cannot
+ # perform imports because of the risk of import loops. It mustn't
+ # call get_app_config().
+ model_name = model._meta.model_name
+ app_models = self.all_models[app_label]
+ if model_name in app_models:
+ if (
+ model.__name__ == app_models[model_name].__name__
+ and model.__module__ == app_models[model_name].__module__
+ ):
+ warnings.warn(
+ "Model '%s.%s' was already registered. Reloading models is not "
+ "advised as it can lead to inconsistencies, most notably with "
+ "related models." % (app_label, model_name),
+ RuntimeWarning,
+ stacklevel=2,
+ )
+ else:
+ raise RuntimeError(
+ "Conflicting '%s' models in application '%s': %s and %s."
+ % (model_name, app_label, app_models[model_name], model)
+ )
+ app_models[model_name] = model
+ self.do_pending_operations(model)
+ self.clear_cache()
+
+ def is_installed(self, app_name):
+ """
+ Check whether an application with this name exists in the registry.
+
+ app_name is the full name of the app e.g. 'django.contrib.admin'.
+ """
+ self.check_apps_ready()
+ return any(ac.name == app_name for ac in self.app_configs.values())
+
+ def get_containing_app_config(self, object_name):
+ """
+ Look for an app config containing a given object.
+
+ object_name is the dotted Python path to the object.
+
+ Return the app config for the inner application in case of nesting.
+ Return None if the object isn't in any registered app config.
+ """
+ self.check_apps_ready()
+ candidates = []
+ for app_config in self.app_configs.values():
+ if object_name.startswith(app_config.name):
+ subpath = object_name.removeprefix(app_config.name)
+ if subpath == "" or subpath[0] == ".":
+ candidates.append(app_config)
+ if candidates:
+ return sorted(candidates, key=lambda ac: -len(ac.name))[0]
+
+ def get_registered_model(self, app_label, model_name):
+ """
+ Similar to get_model(), but doesn't require that an app exists with
+ the given app_label.
+
+ It's safe to call this method at import time, even while the registry
+ is being populated.
+ """
+ model = self.all_models[app_label].get(model_name.lower())
+ if model is None:
+ raise LookupError("Model '%s.%s' not registered." % (app_label, model_name))
+ return model
+
+ @functools.cache
+ def get_swappable_settings_name(self, to_string):
+ """
+ For a given model string (e.g. "auth.User"), return the name of the
+ corresponding settings name if it refers to a swappable model. If the
+ referred model is not swappable, return None.
+
+ This method is decorated with @functools.cache because it's performance
+ critical when it comes to migrations. Since the swappable settings don't
+ change after Django has loaded the settings, there is no reason to get
+ the respective settings attribute over and over again.
+ """
+ to_string = to_string.lower()
+ for model in self.get_models(include_swapped=True):
+ swapped = model._meta.swapped
+ # Is this model swapped out for the model given by to_string?
+ if swapped and swapped.lower() == to_string:
+ return model._meta.swappable
+ # Is this model swappable and the one given by to_string?
+ if model._meta.swappable and model._meta.label_lower == to_string:
+ return model._meta.swappable
+ return None
+
+ def set_available_apps(self, available):
+ """
+ Restrict the set of installed apps used by get_app_config[s].
+
+ available must be an iterable of application names.
+
+ set_available_apps() must be balanced with unset_available_apps().
+
+ Primarily used for performance optimization in TransactionTestCase.
+
+ This method is safe in the sense that it doesn't trigger any imports.
+ """
+ available = set(available)
+ installed = {app_config.name for app_config in self.get_app_configs()}
+ if not available.issubset(installed):
+ raise ValueError(
+ "Available apps isn't a subset of installed apps, extra apps: %s"
+ % ", ".join(available - installed)
+ )
+
+ self.stored_app_configs.append(self.app_configs)
+ self.app_configs = {
+ label: app_config
+ for label, app_config in self.app_configs.items()
+ if app_config.name in available
+ }
+ self.clear_cache()
+
+ def unset_available_apps(self):
+ """Cancel a previous call to set_available_apps()."""
+ self.app_configs = self.stored_app_configs.pop()
+ self.clear_cache()
+
+ def set_installed_apps(self, installed):
+ """
+ Enable a different set of installed apps for get_app_config[s].
+
+ installed must be an iterable in the same format as INSTALLED_APPS.
+
+ set_installed_apps() must be balanced with unset_installed_apps(),
+ even if it exits with an exception.
+
+ Primarily used as a receiver of the setting_changed signal in tests.
+
+ This method may trigger new imports, which may add new models to the
+ registry of all imported models. They will stay in the registry even
+ after unset_installed_apps(). Since it isn't possible to replay
+ imports safely (e.g. that could lead to registering listeners twice),
+ models are registered when they're imported and never removed.
+ """
+ if not self.ready:
+ raise AppRegistryNotReady("App registry isn't ready yet.")
+ self.stored_app_configs.append(self.app_configs)
+ self.app_configs = {}
+ self.apps_ready = self.models_ready = self.loading = self.ready = False
+ self.clear_cache()
+ self.populate(installed)
+
+ def unset_installed_apps(self):
+ """Cancel a previous call to set_installed_apps()."""
+ self.app_configs = self.stored_app_configs.pop()
+ self.apps_ready = self.models_ready = self.ready = True
+ self.clear_cache()
+
+ def clear_cache(self):
+ """
+ Clear all internal caches, for methods that alter the app registry.
+
+ This is mostly used in tests.
+ """
+ self.get_swappable_settings_name.cache_clear()
+ # Call expire cache on each model. This will purge
+ # the relation tree and the fields cache.
+ self.get_models.cache_clear()
+ if self.ready:
+ # Circumvent self.get_models() to prevent that the cache is refilled.
+ # This particularly prevents that an empty value is cached while cloning.
+ for app_config in self.app_configs.values():
+ for model in app_config.get_models(include_auto_created=True):
+ model._meta._expire_cache()
+
+ def lazy_model_operation(self, function, *model_keys):
+ """
+ Take a function and a number of ("app_label", "modelname") tuples, and
+ when all the corresponding models have been imported and registered,
+ call the function with the model classes as its arguments.
+
+ The function passed to this method must accept exactly n models as
+ arguments, where n=len(model_keys).
+ """
+ # Base case: no arguments, just execute the function.
+ if not model_keys:
+ function()
+ # Recursive case: take the head of model_keys, wait for the
+ # corresponding model class to be imported and registered, then apply
+ # that argument to the supplied function. Pass the resulting partial
+ # to lazy_model_operation() along with the remaining model args and
+ # repeat until all models are loaded and all arguments are applied.
+ else:
+ next_model, *more_models = model_keys
+
+ # This will be executed after the class corresponding to next_model
+ # has been imported and registered. The `func` attribute provides
+ # duck-type compatibility with partials.
+ def apply_next_model(model):
+ next_function = partial(apply_next_model.func, model)
+ self.lazy_model_operation(next_function, *more_models)
+
+ apply_next_model.func = function
+
+ # If the model has already been imported and registered, partially
+ # apply it to the function now. If not, add it to the list of
+ # pending operations for the model, where it will be executed with
+ # the model class as its sole argument once the model is ready.
+ try:
+ model_class = self.get_registered_model(*next_model)
+ except LookupError:
+ self._pending_operations[next_model].append(apply_next_model)
+ else:
+ apply_next_model(model_class)
+
+ def do_pending_operations(self, model):
+ """
+ Take a newly-prepared model and pass it to each function waiting for
+ it. This is called at the very end of Apps.register_model().
+ """
+ key = model._meta.app_label, model._meta.model_name
+ for function in self._pending_operations.pop(key, []):
+ function(model)
+
+
+apps = Apps(installed_apps=None)
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/__init__.py
new file mode 100644
index 00000000..5568d7cc
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/__init__.py
@@ -0,0 +1,272 @@
+"""
+Settings and configuration for Django.
+
+Read values from the module specified by the DJANGO_SETTINGS_MODULE environment
+variable, and then from django.conf.global_settings; see the global_settings.py
+for a list of all possible variables.
+"""
+
+import importlib
+import os
+import time
+import traceback
+import warnings
+from pathlib import Path
+
+import django
+from django.conf import global_settings
+from django.core.exceptions import ImproperlyConfigured
+from django.utils.deprecation import RemovedInDjango60Warning
+from django.utils.functional import LazyObject, empty
+
+ENVIRONMENT_VARIABLE = "DJANGO_SETTINGS_MODULE"
+DEFAULT_STORAGE_ALIAS = "default"
+STATICFILES_STORAGE_ALIAS = "staticfiles"
+
+# RemovedInDjango60Warning.
+FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG = (
+ "The FORMS_URLFIELD_ASSUME_HTTPS transitional setting is deprecated."
+)
+
+
+class SettingsReference(str):
+ """
+ String subclass which references a current settings value. It's treated as
+ the value in memory but serializes to a settings.NAME attribute reference.
+ """
+
+ def __new__(self, value, setting_name):
+ return str.__new__(self, value)
+
+ def __init__(self, value, setting_name):
+ self.setting_name = setting_name
+
+
+class LazySettings(LazyObject):
+ """
+ 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 _setup(self, name=None):
+ """
+ Load the settings module pointed to by the environment variable. This
+ is used the first time settings are needed, if the user hasn't
+ configured settings manually.
+ """
+ settings_module = os.environ.get(ENVIRONMENT_VARIABLE)
+ if not settings_module:
+ desc = ("setting %s" % name) if name else "settings"
+ raise ImproperlyConfigured(
+ "Requested %s, but settings are not configured. "
+ "You must either define the environment variable %s "
+ "or call settings.configure() before accessing settings."
+ % (desc, ENVIRONMENT_VARIABLE)
+ )
+
+ self._wrapped = Settings(settings_module)
+
+ def __repr__(self):
+ # Hardcode the class name as otherwise it yields 'Settings'.
+ if self._wrapped is empty:
+ return ""
+ return '' % {
+ "settings_module": self._wrapped.SETTINGS_MODULE,
+ }
+
+ def __getattr__(self, name):
+ """Return the value of a setting and cache it in self.__dict__."""
+ if (_wrapped := self._wrapped) is empty:
+ self._setup(name)
+ _wrapped = self._wrapped
+ val = getattr(_wrapped, name)
+
+ # Special case some settings which require further modification.
+ # This is done here for performance reasons so the modified value is cached.
+ if name in {"MEDIA_URL", "STATIC_URL"} and val is not None:
+ val = self._add_script_prefix(val)
+ elif name == "SECRET_KEY" and not val:
+ raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
+
+ self.__dict__[name] = val
+ return val
+
+ def __setattr__(self, name, value):
+ """
+ Set the value of setting. Clear all cached values if _wrapped changes
+ (@override_settings does this) or clear single values when set.
+ """
+ if name == "_wrapped":
+ self.__dict__.clear()
+ else:
+ self.__dict__.pop(name, None)
+ super().__setattr__(name, value)
+
+ def __delattr__(self, name):
+ """Delete a setting and clear it from cache if needed."""
+ super().__delattr__(name)
+ self.__dict__.pop(name, None)
+
+ 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._wrapped is not empty:
+ raise RuntimeError("Settings already configured.")
+ holder = UserSettingsHolder(default_settings)
+ for name, value in options.items():
+ if not name.isupper():
+ raise TypeError("Setting %r must be uppercase." % name)
+ setattr(holder, name, value)
+ self._wrapped = holder
+
+ @staticmethod
+ def _add_script_prefix(value):
+ """
+ Add SCRIPT_NAME prefix to relative paths.
+
+ Useful when the app is being served at a subpath and manually prefixing
+ subpath to STATIC_URL and MEDIA_URL in settings is inconvenient.
+ """
+ # Don't apply prefix to absolute paths and URLs.
+ if value.startswith(("http://", "https://", "/")):
+ return value
+ from django.urls import get_script_prefix
+
+ return "%s%s" % (get_script_prefix(), value)
+
+ @property
+ def configured(self):
+ """Return True if the settings have already been configured."""
+ return self._wrapped is not empty
+
+ def _show_deprecation_warning(self, message, category):
+ stack = traceback.extract_stack()
+ # Show a warning if the setting is used outside of Django.
+ # Stack index: -1 this line, -2 the property, -3 the
+ # LazyObject __getattribute__(), -4 the caller.
+ filename, _, _, _ = stack[-4]
+ if not filename.startswith(os.path.dirname(django.__file__)):
+ warnings.warn(message, category, stacklevel=2)
+
+
+class Settings:
+ 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.isupper():
+ setattr(self, setting, getattr(global_settings, setting))
+
+ # store the settings module in case someone later cares
+ self.SETTINGS_MODULE = settings_module
+
+ mod = importlib.import_module(self.SETTINGS_MODULE)
+
+ tuple_settings = (
+ "ALLOWED_HOSTS",
+ "INSTALLED_APPS",
+ "TEMPLATE_DIRS",
+ "LOCALE_PATHS",
+ "SECRET_KEY_FALLBACKS",
+ )
+ self._explicit_settings = set()
+ for setting in dir(mod):
+ if setting.isupper():
+ setting_value = getattr(mod, setting)
+
+ if setting in tuple_settings and not isinstance(
+ setting_value, (list, tuple)
+ ):
+ raise ImproperlyConfigured(
+ "The %s setting must be a list or a tuple." % setting
+ )
+ setattr(self, setting, setting_value)
+ self._explicit_settings.add(setting)
+
+ if self.is_overridden("FORMS_URLFIELD_ASSUME_HTTPS"):
+ warnings.warn(
+ FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG,
+ RemovedInDjango60Warning,
+ )
+
+ if hasattr(time, "tzset") and self.TIME_ZONE:
+ # When we can, attempt to validate the timezone. If we can't find
+ # this file, no check happens and it's harmless.
+ zoneinfo_root = Path("/usr/share/zoneinfo")
+ zone_info_file = zoneinfo_root.joinpath(*self.TIME_ZONE.split("/"))
+ if zoneinfo_root.exists() and not zone_info_file.exists():
+ raise ValueError("Incorrect timezone setting: %s" % self.TIME_ZONE)
+ # 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 is_overridden(self, setting):
+ return setting in self._explicit_settings
+
+ def __repr__(self):
+ return '<%(cls)s "%(settings_module)s">' % {
+ "cls": self.__class__.__name__,
+ "settings_module": self.SETTINGS_MODULE,
+ }
+
+
+class UserSettingsHolder:
+ """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.__dict__["_deleted"] = set()
+ self.default_settings = default_settings
+
+ def __getattr__(self, name):
+ if not name.isupper() or name in self._deleted:
+ raise AttributeError
+ return getattr(self.default_settings, name)
+
+ def __setattr__(self, name, value):
+ self._deleted.discard(name)
+ if name == "FORMS_URLFIELD_ASSUME_HTTPS":
+ warnings.warn(
+ FORMS_URLFIELD_ASSUME_HTTPS_DEPRECATED_MSG,
+ RemovedInDjango60Warning,
+ )
+ super().__setattr__(name, value)
+
+ def __delattr__(self, name):
+ self._deleted.add(name)
+ if hasattr(self, name):
+ super().__delattr__(name)
+
+ def __dir__(self):
+ return sorted(
+ s
+ for s in [*self.__dict__, *dir(self.default_settings)]
+ if s not in self._deleted
+ )
+
+ def is_overridden(self, setting):
+ deleted = setting in self._deleted
+ set_locally = setting in self.__dict__
+ set_on_default = getattr(
+ self.default_settings, "is_overridden", lambda s: False
+ )(setting)
+ return deleted or set_locally or set_on_default
+
+ def __repr__(self):
+ return "<%(cls)s>" % {
+ "cls": self.__class__.__name__,
+ }
+
+
+settings = LazySettings()
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..679b68fa
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/global_settings.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/global_settings.cpython-311.pyc
new file mode 100644
index 00000000..3d77fcfb
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/__pycache__/global_settings.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/__init__.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/__init__.py-tpl
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/admin.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/admin.py-tpl
new file mode 100644
index 00000000..8c38f3f3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/admin.py-tpl
@@ -0,0 +1,3 @@
+from django.contrib import admin
+
+# Register your models here.
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/apps.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/apps.py-tpl
new file mode 100644
index 00000000..b7053521
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/apps.py-tpl
@@ -0,0 +1,6 @@
+from django.apps import AppConfig
+
+
+class {{ camel_case_app_name }}Config(AppConfig):
+ default_auto_field = 'django.db.models.BigAutoField'
+ name = '{{ app_name }}'
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/migrations/__init__.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/migrations/__init__.py-tpl
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/models.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/models.py-tpl
new file mode 100644
index 00000000..71a83623
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/models.py-tpl
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/tests.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/tests.py-tpl
new file mode 100644
index 00000000..7ce503c2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/tests.py-tpl
@@ -0,0 +1,3 @@
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/views.py-tpl b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/views.py-tpl
new file mode 100644
index 00000000..91ea44a2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/app_template/views.py-tpl
@@ -0,0 +1,3 @@
+from django.shortcuts import render
+
+# Create your views here.
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/global_settings.py b/backend/.venv/lib/python3.11/site-packages/django/conf/global_settings.py
new file mode 100644
index 00000000..f4535acb
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/global_settings.py
@@ -0,0 +1,669 @@
+"""
+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.
+def gettext_noop(s):
+ return s
+
+
+####################
+# CORE #
+####################
+
+DEBUG = False
+
+# Whether the framework should propagate raw exceptions rather than catching
+# them. This is useful under some testing situations and should never be used
+# on a live site.
+DEBUG_PROPAGATE_EXCEPTIONS = False
+
+# People who get code error notifications. In the format
+# [('Full Name', 'email@example.com'), ('Full Name', 'anotheremail@example.com')]
+ADMINS = []
+
+# List of IP addresses, as strings, that:
+# * See debug comments, when DEBUG is true
+# * Receive x-headers
+INTERNAL_IPS = []
+
+# Hosts/domain names that are valid for this site.
+# "*" matches anything, ".example.com" matches example.com and all subdomains
+ALLOWED_HOSTS = []
+
+# Local time zone for this installation. All choices can be found here:
+# https://en.wikipedia.org/wiki/List_of_tz_zones_by_name (although not all
+# systems may support all possibilities). When USE_TZ is True, this is
+# interpreted as the default user time zone.
+TIME_ZONE = "America/Chicago"
+
+# If you set this to True, Django will use timezone-aware datetimes.
+USE_TZ = True
+
+# Language code for this installation. Valid choices can be found here:
+# https://www.iana.org/assignments/language-subtag-registry/
+# If LANGUAGE_CODE is not listed in LANGUAGES (below), the project must
+# provide the necessary translations and locale definitions.
+LANGUAGE_CODE = "en-us"
+
+# Languages we provide translations for, out of the box.
+LANGUAGES = [
+ ("af", gettext_noop("Afrikaans")),
+ ("ar", gettext_noop("Arabic")),
+ ("ar-dz", gettext_noop("Algerian Arabic")),
+ ("ast", gettext_noop("Asturian")),
+ ("az", gettext_noop("Azerbaijani")),
+ ("bg", gettext_noop("Bulgarian")),
+ ("be", gettext_noop("Belarusian")),
+ ("bn", gettext_noop("Bengali")),
+ ("br", gettext_noop("Breton")),
+ ("bs", gettext_noop("Bosnian")),
+ ("ca", gettext_noop("Catalan")),
+ ("ckb", gettext_noop("Central Kurdish (Sorani)")),
+ ("cs", gettext_noop("Czech")),
+ ("cy", gettext_noop("Welsh")),
+ ("da", gettext_noop("Danish")),
+ ("de", gettext_noop("German")),
+ ("dsb", gettext_noop("Lower Sorbian")),
+ ("el", gettext_noop("Greek")),
+ ("en", gettext_noop("English")),
+ ("en-au", gettext_noop("Australian English")),
+ ("en-gb", gettext_noop("British English")),
+ ("eo", gettext_noop("Esperanto")),
+ ("es", gettext_noop("Spanish")),
+ ("es-ar", gettext_noop("Argentinian Spanish")),
+ ("es-co", gettext_noop("Colombian Spanish")),
+ ("es-mx", gettext_noop("Mexican Spanish")),
+ ("es-ni", gettext_noop("Nicaraguan Spanish")),
+ ("es-ve", gettext_noop("Venezuelan Spanish")),
+ ("et", gettext_noop("Estonian")),
+ ("eu", gettext_noop("Basque")),
+ ("fa", gettext_noop("Persian")),
+ ("fi", gettext_noop("Finnish")),
+ ("fr", gettext_noop("French")),
+ ("fy", gettext_noop("Frisian")),
+ ("ga", gettext_noop("Irish")),
+ ("gd", gettext_noop("Scottish Gaelic")),
+ ("gl", gettext_noop("Galician")),
+ ("he", gettext_noop("Hebrew")),
+ ("hi", gettext_noop("Hindi")),
+ ("hr", gettext_noop("Croatian")),
+ ("hsb", gettext_noop("Upper Sorbian")),
+ ("hu", gettext_noop("Hungarian")),
+ ("hy", gettext_noop("Armenian")),
+ ("ia", gettext_noop("Interlingua")),
+ ("id", gettext_noop("Indonesian")),
+ ("ig", gettext_noop("Igbo")),
+ ("io", gettext_noop("Ido")),
+ ("is", gettext_noop("Icelandic")),
+ ("it", gettext_noop("Italian")),
+ ("ja", gettext_noop("Japanese")),
+ ("ka", gettext_noop("Georgian")),
+ ("kab", gettext_noop("Kabyle")),
+ ("kk", gettext_noop("Kazakh")),
+ ("km", gettext_noop("Khmer")),
+ ("kn", gettext_noop("Kannada")),
+ ("ko", gettext_noop("Korean")),
+ ("ky", gettext_noop("Kyrgyz")),
+ ("lb", gettext_noop("Luxembourgish")),
+ ("lt", gettext_noop("Lithuanian")),
+ ("lv", gettext_noop("Latvian")),
+ ("mk", gettext_noop("Macedonian")),
+ ("ml", gettext_noop("Malayalam")),
+ ("mn", gettext_noop("Mongolian")),
+ ("mr", gettext_noop("Marathi")),
+ ("ms", gettext_noop("Malay")),
+ ("my", gettext_noop("Burmese")),
+ ("nb", gettext_noop("Norwegian Bokmål")),
+ ("ne", gettext_noop("Nepali")),
+ ("nl", gettext_noop("Dutch")),
+ ("nn", gettext_noop("Norwegian Nynorsk")),
+ ("os", gettext_noop("Ossetic")),
+ ("pa", gettext_noop("Punjabi")),
+ ("pl", gettext_noop("Polish")),
+ ("pt", gettext_noop("Portuguese")),
+ ("pt-br", gettext_noop("Brazilian Portuguese")),
+ ("ro", gettext_noop("Romanian")),
+ ("ru", gettext_noop("Russian")),
+ ("sk", gettext_noop("Slovak")),
+ ("sl", gettext_noop("Slovenian")),
+ ("sq", gettext_noop("Albanian")),
+ ("sr", gettext_noop("Serbian")),
+ ("sr-latn", gettext_noop("Serbian Latin")),
+ ("sv", gettext_noop("Swedish")),
+ ("sw", gettext_noop("Swahili")),
+ ("ta", gettext_noop("Tamil")),
+ ("te", gettext_noop("Telugu")),
+ ("tg", gettext_noop("Tajik")),
+ ("th", gettext_noop("Thai")),
+ ("tk", gettext_noop("Turkmen")),
+ ("tr", gettext_noop("Turkish")),
+ ("tt", gettext_noop("Tatar")),
+ ("udm", gettext_noop("Udmurt")),
+ ("ug", gettext_noop("Uyghur")),
+ ("uk", gettext_noop("Ukrainian")),
+ ("ur", gettext_noop("Urdu")),
+ ("uz", gettext_noop("Uzbek")),
+ ("vi", gettext_noop("Vietnamese")),
+ ("zh-hans", gettext_noop("Simplified Chinese")),
+ ("zh-hant", gettext_noop("Traditional Chinese")),
+]
+
+# Languages using BiDi (right-to-left) layout
+LANGUAGES_BIDI = ["he", "ar", "ar-dz", "ckb", "fa", "ug", "ur"]
+
+# If you set this to False, Django will make some optimizations so as not
+# to load the internationalization machinery.
+USE_I18N = True
+LOCALE_PATHS = []
+
+# Settings for language cookie
+LANGUAGE_COOKIE_NAME = "django_language"
+LANGUAGE_COOKIE_AGE = None
+LANGUAGE_COOKIE_DOMAIN = None
+LANGUAGE_COOKIE_PATH = "/"
+LANGUAGE_COOKIE_SECURE = False
+LANGUAGE_COOKIE_HTTPONLY = False
+LANGUAGE_COOKIE_SAMESITE = None
+
+# Not-necessarily-technical managers of the site. They get broken link
+# notifications and other various emails.
+MANAGERS = ADMINS
+
+# Default charset to use for all HttpResponse objects, if a MIME type isn't
+# manually specified. It's used to construct the Content-Type header.
+DEFAULT_CHARSET = "utf-8"
+
+# Email address that error messages come from.
+SERVER_EMAIL = "root@localhost"
+
+# Database connection info. If left empty, will default to the dummy backend.
+DATABASES = {}
+
+# Classes used to implement DB routing behavior.
+DATABASE_ROUTERS = []
+
+# The email backend to use. For possible shortcuts see django.core.mail.
+# The default is to use the SMTP backend.
+# Third-party backends can be specified by providing a Python path
+# to a module that defines an EmailBackend class.
+EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
+
+# Host for sending email.
+EMAIL_HOST = "localhost"
+
+# Port for sending email.
+EMAIL_PORT = 25
+
+# Whether to send SMTP 'Date' header in the local time zone or in UTC.
+EMAIL_USE_LOCALTIME = False
+
+# Optional SMTP authentication information for EMAIL_HOST.
+EMAIL_HOST_USER = ""
+EMAIL_HOST_PASSWORD = ""
+EMAIL_USE_TLS = False
+EMAIL_USE_SSL = False
+EMAIL_SSL_CERTFILE = None
+EMAIL_SSL_KEYFILE = None
+EMAIL_TIMEOUT = None
+
+# List of strings representing installed apps.
+INSTALLED_APPS = []
+
+TEMPLATES = []
+
+# Default form rendering class.
+FORM_RENDERER = "django.forms.renderers.DjangoTemplates"
+
+# RemovedInDjango60Warning: It's a transitional setting helpful in early
+# adoption of "https" as the new default value of forms.URLField.assume_scheme.
+# Set to True to assume "https" during the Django 5.x release cycle.
+FORMS_URLFIELD_ASSUME_HTTPS = False
+
+# Default email 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 = {}
+
+# List of compiled regular expression objects representing URLs that need not
+# be reported by BrokenLinkEmailsMiddleware. Here are a few examples:
+# import re
+# IGNORABLE_404_URLS = [
+# re.compile(r'^/apple-touch-icon.*\.png$'),
+# re.compile(r'^/favicon.ico$'),
+# re.compile(r'^/robots.txt$'),
+# re.compile(r'^/phpmyadmin/'),
+# re.compile(r'\.(cgi|php|pl)$'),
+# ]
+IGNORABLE_404_URLS = []
+
+# 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 = ""
+
+# List of secret keys used to verify the validity of signatures. This allows
+# secret key rotation.
+SECRET_KEY_FALLBACKS = []
+
+STORAGES = {
+ "default": {
+ "BACKEND": "django.core.files.storage.FileSystemStorage",
+ },
+ "staticfiles": {
+ "BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
+ },
+}
+
+# Absolute filesystem path to the directory that will hold user-uploaded files.
+# Example: "/var/www/example.com/media/"
+MEDIA_ROOT = ""
+
+# URL that handles the media served from MEDIA_ROOT.
+# Examples: "http://example.com/media/", "http://media.example.com/"
+MEDIA_URL = ""
+
+# Absolute path to the directory static files should be collected to.
+# Example: "/var/www/example.com/static/"
+STATIC_ROOT = None
+
+# URL that handles the static files served from STATIC_ROOT.
+# Example: "http://example.com/static/", "http://static.example.com/"
+STATIC_URL = None
+
+# 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
+
+# Maximum size in bytes of request data (excluding file uploads) that will be
+# read before a SuspiciousOperation (RequestDataTooBig) is raised.
+DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 # i.e. 2.5 MB
+
+# Maximum number of GET/POST parameters that will be read before a
+# SuspiciousOperation (TooManyFieldsSent) is raised.
+DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
+
+# Maximum number of files encoded in a multipart upload that will be read
+# before a SuspiciousOperation (TooManyFilesSent) is raised.
+DATA_UPLOAD_MAX_NUMBER_FILES = 100
+
+# 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
+
+# The numeric mode to set newly-uploaded files to. The value should be a mode
+# you'd pass directly to os.chmod; see
+# https://docs.python.org/library/os.html#files-and-directories.
+FILE_UPLOAD_PERMISSIONS = 0o644
+
+# The numeric mode to assign to newly-created directories, when uploading files.
+# The value should be a mode as you'd pass to os.chmod;
+# see https://docs.python.org/library/os.html#files-and-directories.
+FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
+
+# Python module path where user will place custom format definition.
+# The directory where this setting is pointing should contain subdirectories
+# named as the locales, containing a formats.py file
+# (i.e. "myproject.locale" for myproject/locale/en/formats.py etc. use)
+FORMAT_MODULE_PATH = None
+
+# Default formatting for date objects. See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "N j, Y"
+
+# Default formatting for datetime objects. See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATETIME_FORMAT = "N j, Y, P"
+
+# Default formatting for time objects. See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+TIME_FORMAT = "P"
+
+# Default formatting for date objects when only the year and month are relevant.
+# See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+YEAR_MONTH_FORMAT = "F Y"
+
+# Default formatting for date objects when only the month and day are relevant.
+# See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+MONTH_DAY_FORMAT = "F j"
+
+# Default short formatting for date objects. See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+SHORT_DATE_FORMAT = "m/d/Y"
+
+# Default short formatting for datetime objects.
+# See all available format strings here:
+# https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+SHORT_DATETIME_FORMAT = "m/d/Y P"
+
+# Default formats to be used when parsing dates from input boxes, in order
+# See all available format string here:
+# https://docs.python.org/library/datetime.html#strftime-behavior
+# * Note that these format strings are different from the ones to display dates
+DATE_INPUT_FORMATS = [
+ "%Y-%m-%d", # '2006-10-25'
+ "%m/%d/%Y", # '10/25/2006'
+ "%m/%d/%y", # '10/25/06'
+ "%b %d %Y", # 'Oct 25 2006'
+ "%b %d, %Y", # 'Oct 25, 2006'
+ "%d %b %Y", # '25 Oct 2006'
+ "%d %b, %Y", # '25 Oct, 2006'
+ "%B %d %Y", # 'October 25 2006'
+ "%B %d, %Y", # 'October 25, 2006'
+ "%d %B %Y", # '25 October 2006'
+ "%d %B, %Y", # '25 October, 2006'
+]
+
+# Default formats to be used when parsing times from input boxes, in order
+# See all available format string here:
+# https://docs.python.org/library/datetime.html#strftime-behavior
+# * Note that these format strings are different from the ones to display dates
+TIME_INPUT_FORMATS = [
+ "%H:%M:%S", # '14:30:59'
+ "%H:%M:%S.%f", # '14:30:59.000200'
+ "%H:%M", # '14:30'
+]
+
+# Default formats to be used when parsing dates and times from input boxes,
+# in order
+# See all available format string here:
+# https://docs.python.org/library/datetime.html#strftime-behavior
+# * Note that these format strings are different from the ones to display dates
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
+ "%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
+ "%m/%d/%Y %H:%M", # '10/25/2006 14:30'
+ "%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
+ "%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
+ "%m/%d/%y %H:%M", # '10/25/06 14:30'
+]
+
+# First day of week, to be used on calendars
+# 0 means Sunday, 1 means Monday...
+FIRST_DAY_OF_WEEK = 0
+
+# Decimal separator symbol
+DECIMAL_SEPARATOR = "."
+
+# Boolean that sets whether to add thousand separator when formatting numbers
+USE_THOUSAND_SEPARATOR = False
+
+# Number of digits that will be together, when splitting them by
+# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands...
+NUMBER_GROUPING = 0
+
+# Thousand separator symbol
+THOUSAND_SEPARATOR = ","
+
+# The tablespaces to use for each model when not specified otherwise.
+DEFAULT_TABLESPACE = ""
+DEFAULT_INDEX_TABLESPACE = ""
+
+# Default primary key field type.
+DEFAULT_AUTO_FIELD = "django.db.models.AutoField"
+
+# Default X-Frame-Options header value
+X_FRAME_OPTIONS = "DENY"
+
+USE_X_FORWARDED_HOST = False
+USE_X_FORWARDED_PORT = False
+
+# The Python dotted path to the WSGI application that Django's internal server
+# (runserver) will use. If `None`, the return value of
+# 'django.core.wsgi.get_wsgi_application' is used, thus preserving the same
+# behavior as previous versions of Django. Otherwise this should point to an
+# actual WSGI application object.
+WSGI_APPLICATION = None
+
+# If your Django app is behind a proxy that sets a header to specify secure
+# connections, AND that proxy ensures that user-submitted headers with the
+# same name are ignored (so that people can't spoof it), set this value to
+# a tuple of (header_name, header_value). For any requests that come in with
+# that header/value, request.is_secure() will return True.
+# WARNING! Only set this if you fully understand what you're doing. Otherwise,
+# you may be opening yourself up to a security risk.
+SECURE_PROXY_SSL_HEADER = None
+
+##############
+# MIDDLEWARE #
+##############
+
+# List of middleware to use. Order is important; in the request phase, these
+# middleware will be applied in the order given, and in the response
+# phase the middleware will be applied in reverse order.
+MIDDLEWARE = []
+
+############
+# SESSIONS #
+############
+
+# Cache to store session data if using the cache session backend.
+SESSION_CACHE_ALIAS = "default"
+# Cookie name. This can be whatever you want.
+SESSION_COOKIE_NAME = "sessionid"
+# Age of cookie, in seconds (default: 2 weeks).
+SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
+# A string like "example.com", or None for standard domain cookie.
+SESSION_COOKIE_DOMAIN = None
+# Whether the session cookie should be secure (https:// only).
+SESSION_COOKIE_SECURE = False
+# The path of the session cookie.
+SESSION_COOKIE_PATH = "/"
+# Whether to use the HttpOnly flag.
+SESSION_COOKIE_HTTPONLY = True
+# Whether to set the flag restricting cookie leaks on cross-site requests.
+# This can be 'Lax', 'Strict', 'None', or False to disable the flag.
+SESSION_COOKIE_SAMESITE = "Lax"
+# Whether to save the session data on every request.
+SESSION_SAVE_EVERY_REQUEST = False
+# Whether a user's session cookie expires when the web browser is closed.
+SESSION_EXPIRE_AT_BROWSER_CLOSE = False
+# The module to store session data
+SESSION_ENGINE = "django.contrib.sessions.backends.db"
+# Directory to store session files if using the file session module. If None,
+# the backend will use a sensible default.
+SESSION_FILE_PATH = None
+# class to serialize session data
+SESSION_SERIALIZER = "django.contrib.sessions.serializers.JSONSerializer"
+
+#########
+# CACHE #
+#########
+
+# The cache backends to use.
+CACHES = {
+ "default": {
+ "BACKEND": "django.core.cache.backends.locmem.LocMemCache",
+ }
+}
+CACHE_MIDDLEWARE_KEY_PREFIX = ""
+CACHE_MIDDLEWARE_SECONDS = 600
+CACHE_MIDDLEWARE_ALIAS = "default"
+
+##################
+# AUTHENTICATION #
+##################
+
+AUTH_USER_MODEL = "auth.User"
+
+AUTHENTICATION_BACKENDS = ["django.contrib.auth.backends.ModelBackend"]
+
+LOGIN_URL = "/accounts/login/"
+
+LOGIN_REDIRECT_URL = "/accounts/profile/"
+
+LOGOUT_REDIRECT_URL = None
+
+# The number of seconds a password reset link is valid for (default: 3 days).
+PASSWORD_RESET_TIMEOUT = 60 * 60 * 24 * 3
+
+# the first hasher in this list is the preferred algorithm. any
+# password using different algorithms will be converted automatically
+# upon login
+PASSWORD_HASHERS = [
+ "django.contrib.auth.hashers.PBKDF2PasswordHasher",
+ "django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
+ "django.contrib.auth.hashers.Argon2PasswordHasher",
+ "django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
+ "django.contrib.auth.hashers.ScryptPasswordHasher",
+]
+
+AUTH_PASSWORD_VALIDATORS = []
+
+###########
+# SIGNING #
+###########
+
+SIGNING_BACKEND = "django.core.signing.TimestampSigner"
+
+########
+# CSRF #
+########
+
+# Dotted path to callable to be used as view when a request is
+# rejected by the CSRF middleware.
+CSRF_FAILURE_VIEW = "django.views.csrf.csrf_failure"
+
+# Settings for CSRF cookie.
+CSRF_COOKIE_NAME = "csrftoken"
+CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52
+CSRF_COOKIE_DOMAIN = None
+CSRF_COOKIE_PATH = "/"
+CSRF_COOKIE_SECURE = False
+CSRF_COOKIE_HTTPONLY = False
+CSRF_COOKIE_SAMESITE = "Lax"
+CSRF_HEADER_NAME = "HTTP_X_CSRFTOKEN"
+CSRF_TRUSTED_ORIGINS = []
+CSRF_USE_SESSIONS = False
+
+############
+# MESSAGES #
+############
+
+# Class to use as messages backend
+MESSAGE_STORAGE = "django.contrib.messages.storage.fallback.FallbackStorage"
+
+# Default values of MESSAGE_LEVEL and MESSAGE_TAGS are defined within
+# django.contrib.messages to avoid imports in this settings file.
+
+###########
+# LOGGING #
+###########
+
+# The callable to use to configure logging
+LOGGING_CONFIG = "logging.config.dictConfig"
+
+# Custom logging configuration.
+LOGGING = {}
+
+# Default exception reporter class used in case none has been
+# specifically assigned to the HttpRequest instance.
+DEFAULT_EXCEPTION_REPORTER = "django.views.debug.ExceptionReporter"
+
+# Default exception reporter filter class used in case none has been
+# specifically assigned to the HttpRequest instance.
+DEFAULT_EXCEPTION_REPORTER_FILTER = "django.views.debug.SafeExceptionReporterFilter"
+
+###########
+# TESTING #
+###########
+
+# The name of the class to use to run the test suite
+TEST_RUNNER = "django.test.runner.DiscoverRunner"
+
+# Apps that don't need to be serialized at test database creation time
+# (only apps with migrations are to start with)
+TEST_NON_SERIALIZED_APPS = []
+
+############
+# FIXTURES #
+############
+
+# The list of directories to search for fixtures
+FIXTURE_DIRS = []
+
+###############
+# STATICFILES #
+###############
+
+# A list of locations of additional static files
+STATICFILES_DIRS = []
+
+# List of finder classes that know how to find static files in
+# various locations.
+STATICFILES_FINDERS = [
+ "django.contrib.staticfiles.finders.FileSystemFinder",
+ "django.contrib.staticfiles.finders.AppDirectoriesFinder",
+ # 'django.contrib.staticfiles.finders.DefaultStorageFinder',
+]
+
+##############
+# MIGRATIONS #
+##############
+
+# Migration module overrides for apps, by app label.
+MIGRATION_MODULES = {}
+
+#################
+# SYSTEM CHECKS #
+#################
+
+# List of all issues generated by system checks that should be silenced. Light
+# issues like warnings, infos or debugs will not generate a message. Silencing
+# serious issues like errors and criticals does not result in hiding the
+# message, but Django will not stop you from e.g. running server.
+SILENCED_SYSTEM_CHECKS = []
+
+#######################
+# SECURITY MIDDLEWARE #
+#######################
+SECURE_CONTENT_TYPE_NOSNIFF = True
+SECURE_CROSS_ORIGIN_OPENER_POLICY = "same-origin"
+SECURE_HSTS_INCLUDE_SUBDOMAINS = False
+SECURE_HSTS_PRELOAD = False
+SECURE_HSTS_SECONDS = 0
+SECURE_REDIRECT_EXEMPT = []
+SECURE_REFERRER_POLICY = "same-origin"
+SECURE_SSL_HOST = None
+SECURE_SSL_REDIRECT = False
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__init__.py
new file mode 100644
index 00000000..6ac7bd3b
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__init__.py
@@ -0,0 +1,629 @@
+"""
+LANG_INFO is a dictionary structure to provide meta information about languages.
+
+About name_local: capitalize it as if your language name was appearing
+inside a sentence in your language.
+The 'fallback' key can be used to specify a special fallback logic which doesn't
+follow the traditional 'fr-ca' -> 'fr' fallback logic.
+"""
+
+LANG_INFO = {
+ "af": {
+ "bidi": False,
+ "code": "af",
+ "name": "Afrikaans",
+ "name_local": "Afrikaans",
+ },
+ "ar": {
+ "bidi": True,
+ "code": "ar",
+ "name": "Arabic",
+ "name_local": "العربيّة",
+ },
+ "ar-dz": {
+ "bidi": True,
+ "code": "ar-dz",
+ "name": "Algerian Arabic",
+ "name_local": "العربية الجزائرية",
+ },
+ "ast": {
+ "bidi": False,
+ "code": "ast",
+ "name": "Asturian",
+ "name_local": "asturianu",
+ },
+ "az": {
+ "bidi": True,
+ "code": "az",
+ "name": "Azerbaijani",
+ "name_local": "Azərbaycanca",
+ },
+ "be": {
+ "bidi": False,
+ "code": "be",
+ "name": "Belarusian",
+ "name_local": "беларуская",
+ },
+ "bg": {
+ "bidi": False,
+ "code": "bg",
+ "name": "Bulgarian",
+ "name_local": "български",
+ },
+ "bn": {
+ "bidi": False,
+ "code": "bn",
+ "name": "Bengali",
+ "name_local": "বাংলা",
+ },
+ "br": {
+ "bidi": False,
+ "code": "br",
+ "name": "Breton",
+ "name_local": "brezhoneg",
+ },
+ "bs": {
+ "bidi": False,
+ "code": "bs",
+ "name": "Bosnian",
+ "name_local": "bosanski",
+ },
+ "ca": {
+ "bidi": False,
+ "code": "ca",
+ "name": "Catalan",
+ "name_local": "català",
+ },
+ "ckb": {
+ "bidi": True,
+ "code": "ckb",
+ "name": "Central Kurdish (Sorani)",
+ "name_local": "کوردی",
+ },
+ "cs": {
+ "bidi": False,
+ "code": "cs",
+ "name": "Czech",
+ "name_local": "česky",
+ },
+ "cy": {
+ "bidi": False,
+ "code": "cy",
+ "name": "Welsh",
+ "name_local": "Cymraeg",
+ },
+ "da": {
+ "bidi": False,
+ "code": "da",
+ "name": "Danish",
+ "name_local": "dansk",
+ },
+ "de": {
+ "bidi": False,
+ "code": "de",
+ "name": "German",
+ "name_local": "Deutsch",
+ },
+ "dsb": {
+ "bidi": False,
+ "code": "dsb",
+ "name": "Lower Sorbian",
+ "name_local": "dolnoserbski",
+ },
+ "el": {
+ "bidi": False,
+ "code": "el",
+ "name": "Greek",
+ "name_local": "Ελληνικά",
+ },
+ "en": {
+ "bidi": False,
+ "code": "en",
+ "name": "English",
+ "name_local": "English",
+ },
+ "en-au": {
+ "bidi": False,
+ "code": "en-au",
+ "name": "Australian English",
+ "name_local": "Australian English",
+ },
+ "en-gb": {
+ "bidi": False,
+ "code": "en-gb",
+ "name": "British English",
+ "name_local": "British English",
+ },
+ "eo": {
+ "bidi": False,
+ "code": "eo",
+ "name": "Esperanto",
+ "name_local": "Esperanto",
+ },
+ "es": {
+ "bidi": False,
+ "code": "es",
+ "name": "Spanish",
+ "name_local": "español",
+ },
+ "es-ar": {
+ "bidi": False,
+ "code": "es-ar",
+ "name": "Argentinian Spanish",
+ "name_local": "español de Argentina",
+ },
+ "es-co": {
+ "bidi": False,
+ "code": "es-co",
+ "name": "Colombian Spanish",
+ "name_local": "español de Colombia",
+ },
+ "es-mx": {
+ "bidi": False,
+ "code": "es-mx",
+ "name": "Mexican Spanish",
+ "name_local": "español de Mexico",
+ },
+ "es-ni": {
+ "bidi": False,
+ "code": "es-ni",
+ "name": "Nicaraguan Spanish",
+ "name_local": "español de Nicaragua",
+ },
+ "es-ve": {
+ "bidi": False,
+ "code": "es-ve",
+ "name": "Venezuelan Spanish",
+ "name_local": "español de Venezuela",
+ },
+ "et": {
+ "bidi": False,
+ "code": "et",
+ "name": "Estonian",
+ "name_local": "eesti",
+ },
+ "eu": {
+ "bidi": False,
+ "code": "eu",
+ "name": "Basque",
+ "name_local": "Basque",
+ },
+ "fa": {
+ "bidi": True,
+ "code": "fa",
+ "name": "Persian",
+ "name_local": "فارسی",
+ },
+ "fi": {
+ "bidi": False,
+ "code": "fi",
+ "name": "Finnish",
+ "name_local": "suomi",
+ },
+ "fr": {
+ "bidi": False,
+ "code": "fr",
+ "name": "French",
+ "name_local": "français",
+ },
+ "fy": {
+ "bidi": False,
+ "code": "fy",
+ "name": "Frisian",
+ "name_local": "frysk",
+ },
+ "ga": {
+ "bidi": False,
+ "code": "ga",
+ "name": "Irish",
+ "name_local": "Gaeilge",
+ },
+ "gd": {
+ "bidi": False,
+ "code": "gd",
+ "name": "Scottish Gaelic",
+ "name_local": "Gàidhlig",
+ },
+ "gl": {
+ "bidi": False,
+ "code": "gl",
+ "name": "Galician",
+ "name_local": "galego",
+ },
+ "he": {
+ "bidi": True,
+ "code": "he",
+ "name": "Hebrew",
+ "name_local": "עברית",
+ },
+ "hi": {
+ "bidi": False,
+ "code": "hi",
+ "name": "Hindi",
+ "name_local": "हिंदी",
+ },
+ "hr": {
+ "bidi": False,
+ "code": "hr",
+ "name": "Croatian",
+ "name_local": "Hrvatski",
+ },
+ "hsb": {
+ "bidi": False,
+ "code": "hsb",
+ "name": "Upper Sorbian",
+ "name_local": "hornjoserbsce",
+ },
+ "hu": {
+ "bidi": False,
+ "code": "hu",
+ "name": "Hungarian",
+ "name_local": "Magyar",
+ },
+ "hy": {
+ "bidi": False,
+ "code": "hy",
+ "name": "Armenian",
+ "name_local": "հայերեն",
+ },
+ "ia": {
+ "bidi": False,
+ "code": "ia",
+ "name": "Interlingua",
+ "name_local": "Interlingua",
+ },
+ "io": {
+ "bidi": False,
+ "code": "io",
+ "name": "Ido",
+ "name_local": "ido",
+ },
+ "id": {
+ "bidi": False,
+ "code": "id",
+ "name": "Indonesian",
+ "name_local": "Bahasa Indonesia",
+ },
+ "ig": {
+ "bidi": False,
+ "code": "ig",
+ "name": "Igbo",
+ "name_local": "Asụsụ Ìgbò",
+ },
+ "is": {
+ "bidi": False,
+ "code": "is",
+ "name": "Icelandic",
+ "name_local": "Íslenska",
+ },
+ "it": {
+ "bidi": False,
+ "code": "it",
+ "name": "Italian",
+ "name_local": "italiano",
+ },
+ "ja": {
+ "bidi": False,
+ "code": "ja",
+ "name": "Japanese",
+ "name_local": "日本語",
+ },
+ "ka": {
+ "bidi": False,
+ "code": "ka",
+ "name": "Georgian",
+ "name_local": "ქართული",
+ },
+ "kab": {
+ "bidi": False,
+ "code": "kab",
+ "name": "Kabyle",
+ "name_local": "taqbaylit",
+ },
+ "kk": {
+ "bidi": False,
+ "code": "kk",
+ "name": "Kazakh",
+ "name_local": "Қазақ",
+ },
+ "km": {
+ "bidi": False,
+ "code": "km",
+ "name": "Khmer",
+ "name_local": "Khmer",
+ },
+ "kn": {
+ "bidi": False,
+ "code": "kn",
+ "name": "Kannada",
+ "name_local": "Kannada",
+ },
+ "ko": {
+ "bidi": False,
+ "code": "ko",
+ "name": "Korean",
+ "name_local": "한국어",
+ },
+ "ky": {
+ "bidi": False,
+ "code": "ky",
+ "name": "Kyrgyz",
+ "name_local": "Кыргызча",
+ },
+ "lb": {
+ "bidi": False,
+ "code": "lb",
+ "name": "Luxembourgish",
+ "name_local": "Lëtzebuergesch",
+ },
+ "lt": {
+ "bidi": False,
+ "code": "lt",
+ "name": "Lithuanian",
+ "name_local": "Lietuviškai",
+ },
+ "lv": {
+ "bidi": False,
+ "code": "lv",
+ "name": "Latvian",
+ "name_local": "latviešu",
+ },
+ "mk": {
+ "bidi": False,
+ "code": "mk",
+ "name": "Macedonian",
+ "name_local": "Македонски",
+ },
+ "ml": {
+ "bidi": False,
+ "code": "ml",
+ "name": "Malayalam",
+ "name_local": "മലയാളം",
+ },
+ "mn": {
+ "bidi": False,
+ "code": "mn",
+ "name": "Mongolian",
+ "name_local": "Mongolian",
+ },
+ "mr": {
+ "bidi": False,
+ "code": "mr",
+ "name": "Marathi",
+ "name_local": "मराठी",
+ },
+ "ms": {
+ "bidi": False,
+ "code": "ms",
+ "name": "Malay",
+ "name_local": "Bahasa Melayu",
+ },
+ "my": {
+ "bidi": False,
+ "code": "my",
+ "name": "Burmese",
+ "name_local": "မြန်မာဘာသာ",
+ },
+ "nb": {
+ "bidi": False,
+ "code": "nb",
+ "name": "Norwegian Bokmal",
+ "name_local": "norsk (bokmål)",
+ },
+ "ne": {
+ "bidi": False,
+ "code": "ne",
+ "name": "Nepali",
+ "name_local": "नेपाली",
+ },
+ "nl": {
+ "bidi": False,
+ "code": "nl",
+ "name": "Dutch",
+ "name_local": "Nederlands",
+ },
+ "nn": {
+ "bidi": False,
+ "code": "nn",
+ "name": "Norwegian Nynorsk",
+ "name_local": "norsk (nynorsk)",
+ },
+ "no": {
+ "bidi": False,
+ "code": "no",
+ "name": "Norwegian",
+ "name_local": "norsk",
+ },
+ "os": {
+ "bidi": False,
+ "code": "os",
+ "name": "Ossetic",
+ "name_local": "Ирон",
+ },
+ "pa": {
+ "bidi": False,
+ "code": "pa",
+ "name": "Punjabi",
+ "name_local": "Punjabi",
+ },
+ "pl": {
+ "bidi": False,
+ "code": "pl",
+ "name": "Polish",
+ "name_local": "polski",
+ },
+ "pt": {
+ "bidi": False,
+ "code": "pt",
+ "name": "Portuguese",
+ "name_local": "Português",
+ },
+ "pt-br": {
+ "bidi": False,
+ "code": "pt-br",
+ "name": "Brazilian Portuguese",
+ "name_local": "Português Brasileiro",
+ },
+ "ro": {
+ "bidi": False,
+ "code": "ro",
+ "name": "Romanian",
+ "name_local": "Română",
+ },
+ "ru": {
+ "bidi": False,
+ "code": "ru",
+ "name": "Russian",
+ "name_local": "Русский",
+ },
+ "sk": {
+ "bidi": False,
+ "code": "sk",
+ "name": "Slovak",
+ "name_local": "slovensky",
+ },
+ "sl": {
+ "bidi": False,
+ "code": "sl",
+ "name": "Slovenian",
+ "name_local": "Slovenščina",
+ },
+ "sq": {
+ "bidi": False,
+ "code": "sq",
+ "name": "Albanian",
+ "name_local": "shqip",
+ },
+ "sr": {
+ "bidi": False,
+ "code": "sr",
+ "name": "Serbian",
+ "name_local": "српски",
+ },
+ "sr-latn": {
+ "bidi": False,
+ "code": "sr-latn",
+ "name": "Serbian Latin",
+ "name_local": "srpski (latinica)",
+ },
+ "sv": {
+ "bidi": False,
+ "code": "sv",
+ "name": "Swedish",
+ "name_local": "svenska",
+ },
+ "sw": {
+ "bidi": False,
+ "code": "sw",
+ "name": "Swahili",
+ "name_local": "Kiswahili",
+ },
+ "ta": {
+ "bidi": False,
+ "code": "ta",
+ "name": "Tamil",
+ "name_local": "தமிழ்",
+ },
+ "te": {
+ "bidi": False,
+ "code": "te",
+ "name": "Telugu",
+ "name_local": "తెలుగు",
+ },
+ "tg": {
+ "bidi": False,
+ "code": "tg",
+ "name": "Tajik",
+ "name_local": "тоҷикӣ",
+ },
+ "th": {
+ "bidi": False,
+ "code": "th",
+ "name": "Thai",
+ "name_local": "ภาษาไทย",
+ },
+ "tk": {
+ "bidi": False,
+ "code": "tk",
+ "name": "Turkmen",
+ "name_local": "Türkmençe",
+ },
+ "tr": {
+ "bidi": False,
+ "code": "tr",
+ "name": "Turkish",
+ "name_local": "Türkçe",
+ },
+ "tt": {
+ "bidi": False,
+ "code": "tt",
+ "name": "Tatar",
+ "name_local": "Татарча",
+ },
+ "udm": {
+ "bidi": False,
+ "code": "udm",
+ "name": "Udmurt",
+ "name_local": "Удмурт",
+ },
+ "ug": {
+ "bidi": True,
+ "code": "ug",
+ "name": "Uyghur",
+ "name_local": "ئۇيغۇرچە",
+ },
+ "uk": {
+ "bidi": False,
+ "code": "uk",
+ "name": "Ukrainian",
+ "name_local": "Українська",
+ },
+ "ur": {
+ "bidi": True,
+ "code": "ur",
+ "name": "Urdu",
+ "name_local": "اردو",
+ },
+ "uz": {
+ "bidi": False,
+ "code": "uz",
+ "name": "Uzbek",
+ "name_local": "oʻzbek tili",
+ },
+ "vi": {
+ "bidi": False,
+ "code": "vi",
+ "name": "Vietnamese",
+ "name_local": "Tiếng Việt",
+ },
+ "zh-cn": {
+ "fallback": ["zh-hans"],
+ },
+ "zh-hans": {
+ "bidi": False,
+ "code": "zh-hans",
+ "name": "Simplified Chinese",
+ "name_local": "简体中文",
+ },
+ "zh-hant": {
+ "bidi": False,
+ "code": "zh-hant",
+ "name": "Traditional Chinese",
+ "name_local": "繁體中文",
+ },
+ "zh-hk": {
+ "fallback": ["zh-hant"],
+ },
+ "zh-mo": {
+ "fallback": ["zh-hant"],
+ },
+ "zh-my": {
+ "fallback": ["zh-hans"],
+ },
+ "zh-sg": {
+ "fallback": ["zh-hans"],
+ },
+ "zh-tw": {
+ "fallback": ["zh-hant"],
+ },
+}
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..2e0d2177
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..dfd34bcc
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.po
new file mode 100644
index 00000000..5f6cbafb
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/af/LC_MESSAGES/django.po
@@ -0,0 +1,1345 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# F Wolff , 2019-2020,2022-2025
+# Stephen Cox , 2011-2012
+# unklphil , 2014,2019
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: F Wolff , 2019-2020,2022-2025\n"
+"Language-Team: Afrikaans (http://app.transifex.com/django/django/language/"
+"af/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: af\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Arabies"
+
+msgid "Algerian Arabic"
+msgstr "Algeriese Arabies"
+
+msgid "Asturian"
+msgstr "Asturies"
+
+msgid "Azerbaijani"
+msgstr "Aserbeidjans"
+
+msgid "Bulgarian"
+msgstr "Bulgaars"
+
+msgid "Belarusian"
+msgstr "Wit-Russies"
+
+msgid "Bengali"
+msgstr "Bengali"
+
+msgid "Breton"
+msgstr "Bretons"
+
+msgid "Bosnian"
+msgstr "Bosnies"
+
+msgid "Catalan"
+msgstr "Katalaans"
+
+msgid "Central Kurdish (Sorani)"
+msgstr ""
+
+msgid "Czech"
+msgstr "Tsjeggies"
+
+msgid "Welsh"
+msgstr "Wallies"
+
+msgid "Danish"
+msgstr "Deens"
+
+msgid "German"
+msgstr "Duits"
+
+msgid "Lower Sorbian"
+msgstr "Neder-Sorbies"
+
+msgid "Greek"
+msgstr "Grieks"
+
+msgid "English"
+msgstr "Engels"
+
+msgid "Australian English"
+msgstr "Australiese Engels"
+
+msgid "British English"
+msgstr "Britse Engels"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spaans"
+
+msgid "Argentinian Spanish"
+msgstr "Argentynse Spaans"
+
+msgid "Colombian Spanish"
+msgstr "Kolombiaanse Spaans"
+
+msgid "Mexican Spanish"
+msgstr "Meksikaanse Spaans"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nicaraguaanse Spaans"
+
+msgid "Venezuelan Spanish"
+msgstr "Venezolaanse Spaans"
+
+msgid "Estonian"
+msgstr "Estnies"
+
+msgid "Basque"
+msgstr "Baskies"
+
+msgid "Persian"
+msgstr "Persies"
+
+msgid "Finnish"
+msgstr "Fins"
+
+msgid "French"
+msgstr "Fraans"
+
+msgid "Frisian"
+msgstr "Fries"
+
+msgid "Irish"
+msgstr "Iers"
+
+msgid "Scottish Gaelic"
+msgstr "Skots-Gaelies"
+
+msgid "Galician"
+msgstr "Galicies"
+
+msgid "Hebrew"
+msgstr "Hebreeus"
+
+msgid "Hindi"
+msgstr "Hindoe"
+
+msgid "Croatian"
+msgstr "Kroaties"
+
+msgid "Upper Sorbian"
+msgstr "Opper-Sorbies"
+
+msgid "Hungarian"
+msgstr "Hongaars"
+
+msgid "Armenian"
+msgstr "Armeens"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesies"
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Yslands"
+
+msgid "Italian"
+msgstr "Italiaans"
+
+msgid "Japanese"
+msgstr "Japannees"
+
+msgid "Georgian"
+msgstr "Georgian"
+
+msgid "Kabyle"
+msgstr "Kabilies"
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Koreaans"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "Luxemburgs"
+
+msgid "Lithuanian"
+msgstr "Litaus"
+
+msgid "Latvian"
+msgstr "Lets"
+
+msgid "Macedonian"
+msgstr "Macedonies"
+
+msgid "Malayalam"
+msgstr "Malabaars"
+
+msgid "Mongolian"
+msgstr "Mongools"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Maleisies"
+
+msgid "Burmese"
+msgstr "Birmaans"
+
+msgid "Norwegian Bokmål"
+msgstr "Noorweegse Bokmål"
+
+msgid "Nepali"
+msgstr "Nepalees"
+
+msgid "Dutch"
+msgstr "Nederlands"
+
+msgid "Norwegian Nynorsk"
+msgstr "Noorweegse Nynorsk"
+
+msgid "Ossetic"
+msgstr "Osseties"
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Pools"
+
+msgid "Portuguese"
+msgstr "Portugees"
+
+msgid "Brazilian Portuguese"
+msgstr "Brasiliaanse Portugees"
+
+msgid "Romanian"
+msgstr "Roemeens"
+
+msgid "Russian"
+msgstr "Russiese"
+
+msgid "Slovak"
+msgstr "Slowaaks"
+
+msgid "Slovenian"
+msgstr "Sloweens"
+
+msgid "Albanian"
+msgstr "Albanees"
+
+msgid "Serbian"
+msgstr "Serwies"
+
+msgid "Serbian Latin"
+msgstr "Serwies Latyns"
+
+msgid "Swedish"
+msgstr "Sweeds"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Teloegoe"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Thai"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turks"
+
+msgid "Tatar"
+msgstr "Tataars"
+
+msgid "Udmurt"
+msgstr "Oedmoerts"
+
+msgid "Uyghur"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "Oekraïens"
+
+msgid "Urdu"
+msgstr "Oerdoe"
+
+msgid "Uzbek"
+msgstr "Oesbekies "
+
+msgid "Vietnamese"
+msgstr "Viëtnamees"
+
+msgid "Simplified Chinese"
+msgstr "Vereenvoudigde Sjinees"
+
+msgid "Traditional Chinese"
+msgstr "Tradisionele Sjinees"
+
+msgid "Messages"
+msgstr "Boodskappe"
+
+msgid "Site Maps"
+msgstr "Werfkaarte"
+
+msgid "Static Files"
+msgstr "Statiese lêers"
+
+msgid "Syndication"
+msgstr "Sindikasie"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Daai bladsynommer is nie ’n heelgetal nie"
+
+msgid "That page number is less than 1"
+msgstr "Daai bladsynommer is minder as 1"
+
+msgid "That page contains no results"
+msgstr "Daai bladsy bevat geen resultate nie"
+
+msgid "Enter a valid value."
+msgstr "Gee ’n geldige waarde."
+
+msgid "Enter a valid domain name."
+msgstr "Gee ’n geldige domeinnaam."
+
+msgid "Enter a valid URL."
+msgstr "Gee ’n geldige URL."
+
+msgid "Enter a valid integer."
+msgstr "Gee ’n geldige heelgetal."
+
+msgid "Enter a valid email address."
+msgstr "Gee ’n geldige e-posadres."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Gee ’n geldige “slak” wat bestaan uit letters, syfers, onderstreep of "
+"koppelteken."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Gee ’n geldige “slak” wat bestaan uit Unicode-letters, syfers, onderstreep "
+"of koppelteken."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Gee ’n geldige %(protocol)s-adres"
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 of IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Gee slegs syfers wat deur kommas geskei is."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Maak seker dat hierdie waarde %(limit_value)s is (dit is %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Maak seker dat hierdie waarde kleiner of gelyk is aan %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Maak seker dat hierdie waarde groter of gelyk is aan %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Maak seker dat hierdie waarde ’n veelvoud is van stapgrootte %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Maak seker dié waarde is 'n veelvoud van stapgrootte %(limit_value)s, "
+"beginnende by %(offset)s, bv. %(offset)s, %(valid_value1)s, "
+"%(valid_value2)s, ens. "
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Maak seker hierdie waarde het ten minste %(limit_value)d karakter (dit het "
+"%(show_value)d)."
+msgstr[1] ""
+"Maak seker hierdie waarde het ten minste %(limit_value)d karakters (dit het "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Maak seker hierdie waarde het op die meeste %(limit_value)d karakter (dit "
+"het %(show_value)d)."
+msgstr[1] ""
+"Maak seker hierdie waarde het op die meeste %(limit_value)d karakters (dit "
+"het %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Gee ’n getal."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Maak seker dat daar nie meer as %(max)s syfer in totaal is nie."
+msgstr[1] "Maak seker dat daar nie meer as %(max)s syfers in totaal is nie."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Maak seker dat daar nie meer as %(max)s desimale plek is nie."
+msgstr[1] "Maak seker dat daar nie meer as %(max)s desimale plekke is nie."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Maak seker dat daar nie meer as %(max)s syfer voor die desimale punt is nie."
+msgstr[1] ""
+"Maak seker dat daar nie meer as %(max)s syfers voor die desimale punt is nie."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Lêeruitbreiding “%(extension)s” word nie toegelaat nie. Toegelate "
+"uitbreidings is: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Nul-karakters word nie toegelaat nie."
+
+msgid "and"
+msgstr "en"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s met hierdie %(field_labels)s bestaan alreeds."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Beperking “%(name)s” word verbreek."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Waarde %(value)r is nie ’n geldige keuse nie."
+
+msgid "This field cannot be null."
+msgstr "Hierdie veld kan nie nil wees nie."
+
+msgid "This field cannot be blank."
+msgstr "Hierdie veld kan nie leeg wees nie."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s met hierdie %(field_label)s bestaan alreeds."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s moet uniek wees per %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Veld van tipe: %(field_type)s "
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s” waarde moet óf True óf False wees."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Die waarde “%(value)s” moet True, False of None wees."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boole (True of False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (hoogstens %(max_length)s karakters)"
+
+msgid "String (unlimited)"
+msgstr "String (onbeperk)"
+
+msgid "Comma-separated integers"
+msgstr "Heelgetalle geskei met kommas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Die waarde “%(value)s” het ’n ongeldige datumformaat. Dit moet in die "
+"formaat JJJJ-MM-DD wees."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD), maar dit is ’n "
+"ongeldige datum."
+
+msgid "Date (without time)"
+msgstr "Datum (sonder die tyd)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Die waarde “%(value)s” se formaat is ongeldig. Dit moet in die formaat JJJJ-"
+"MM-DD HH:MM[:ss[.uuuuuu]][TZ] wees."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Die waarde “%(value)s” het die korrekte formaat (JJJJ-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ]) maar dit is ’n ongeldige datum/tyd."
+
+msgid "Date (with time)"
+msgstr "Datum (met die tyd)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s”-waarde moet ’n desimale getal wees."
+
+msgid "Decimal number"
+msgstr "Desimale getal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Die waarde “%(value)s” het ’n ongeldige formaat. Dit moet in die formaat "
+"[DD] [HH:[MM:]]ss[.uuuuuu] wees."
+
+msgid "Duration"
+msgstr "Duur"
+
+msgid "Email address"
+msgstr "E-posadres"
+
+msgid "File path"
+msgstr "Lêerpad"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Die waarde “%(value)s” moet ’n dryfpuntgetal wees."
+
+msgid "Floating point number"
+msgstr "Dryfpuntgetal"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Die waarde “%(value)s” moet ’n heelgetal wees."
+
+msgid "Integer"
+msgstr "Heelgetal"
+
+msgid "Big (8 byte) integer"
+msgstr "Groot (8 greep) heelgetal"
+
+msgid "Small integer"
+msgstr "Klein heelgetal"
+
+msgid "IPv4 address"
+msgstr "IPv4-adres"
+
+msgid "IP address"
+msgstr "IP-adres"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s”-waarde moet een wees uit None, True of False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boole (True, False, of None)"
+
+msgid "Positive big integer"
+msgstr "Positiewe groot heelgetal"
+
+msgid "Positive integer"
+msgstr "Positiewe heelgetal"
+
+msgid "Positive small integer"
+msgstr "Klein positiewe heelgetal"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (tot en met %(max_length)s karakters)"
+
+msgid "Text"
+msgstr "Teks"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s”-waarde het ’n ongeldige formaat. Dit moet geformateer word as HH:"
+"MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Die waarde “%(value)s” het die regte formaat (HH:MM[:ss[.uuuuuu]]) maar is "
+"nie ’n geldige tyd nie."
+
+msgid "Time"
+msgstr "Tyd"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Rou binêre data"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” is nie ’n geldige UUID nie."
+
+msgid "Universally unique identifier"
+msgstr "Universeel unieke identifiseerder"
+
+msgid "File"
+msgstr "Lêer"
+
+msgid "Image"
+msgstr "Prent"
+
+msgid "A JSON object"
+msgstr "’n JSON-objek"
+
+msgid "Value must be valid JSON."
+msgstr "Waarde moet geldige JSON wees."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "%(model)s-objek met %(field)s %(value)r is nie ’n geldige keuse nie."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Vreemde sleutel (tipe bepaal deur verwante veld)"
+
+msgid "One-to-one relationship"
+msgstr "Een-tot-een-verhouding"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s-verwantskap"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s-verwantskappe"
+
+msgid "Many-to-many relationship"
+msgstr "Baie-tot-baie-verwantskap"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Dié veld is verpligtend."
+
+msgid "Enter a whole number."
+msgstr "Tik ’n heelgetal in."
+
+msgid "Enter a valid date."
+msgstr "Tik ’n geldige datum in."
+
+msgid "Enter a valid time."
+msgstr "Tik ’n geldige tyd in."
+
+msgid "Enter a valid date/time."
+msgstr "Tik ’n geldige datum/tyd in."
+
+msgid "Enter a valid duration."
+msgstr "Tik ’n geldige tydsduur in."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Die aantal dae moet tussen {min_days} en {max_days} wees."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Geen lêer is ingedien nie. Maak seker die koderingtipe op die vorm is reg."
+
+msgid "No file was submitted."
+msgstr "Geen lêer is ingedien nie."
+
+msgid "The submitted file is empty."
+msgstr "Die ingediende lêer is leeg."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Maak seker hierdie lêernaam het hoogstens %(max)d karakter (dit het "
+"%(length)d)."
+msgstr[1] ""
+"Maak seker hierdie lêernaam het hoogstens %(max)d karakters (dit het "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Dien die lêer in óf merk die Maak skoon-boksie, nie altwee nie."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Laai ’n geldige prent. Die lêer wat jy opgelaai het, is nie ’n prent nie of "
+"dit is ’n korrupte prent."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Kies ’n geldige keuse. %(value)s is nie een van die beskikbare keuses nie."
+
+msgid "Enter a list of values."
+msgstr "Tik ’n lys waardes in."
+
+msgid "Enter a complete value."
+msgstr "Tik ’n volledige waarde in."
+
+msgid "Enter a valid UUID."
+msgstr "Tik ’n geldig UUID in."
+
+msgid "Enter a valid JSON."
+msgstr "Gee geldige JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Versteekte veld %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Dien asseblief hoogstens %(num)d vorm in."
+msgstr[1] "Dien asseblief hoogstens %(num)d vorms in."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Dien asseblief ten minste %(num)d vorm in."
+msgstr[1] "Dien asseblief ten minste %(num)d vorms in."
+
+msgid "Order"
+msgstr "Orde"
+
+msgid "Delete"
+msgstr "Verwyder"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Korrigeer die dubbele data vir %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Korrigeer die dubbele data vir %(field)s, dit moet uniek wees."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Korrigeer die dubbele data vir %(field_name)s, dit moet uniek wees vir die "
+"%(lookup)s in %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Korrigeer die dubbele waardes hieronder."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Die waarde inlyn pas nie by die ouerobjek nie."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Kies ’n geldige keuse. Daardie keuse is nie een van die beskikbare keuses "
+"nie."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” is nie ’n geldige waarde nie."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s kon nie in die tydsone %(current_timezone)s vertolk word nie; "
+"dit is dalk dubbelsinnig, of bestaan dalk nie."
+
+msgid "Clear"
+msgstr "Maak skoon"
+
+msgid "Currently"
+msgstr "Tans"
+
+msgid "Change"
+msgstr "Verander"
+
+msgid "Unknown"
+msgstr "Onbekend"
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "No"
+msgstr "Nee"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "ja,nee,miskien"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d greep"
+msgstr[1] "%(size)d grepe"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "nm."
+
+msgid "a.m."
+msgstr "vm."
+
+msgid "PM"
+msgstr "NM"
+
+msgid "AM"
+msgstr "VM"
+
+msgid "midnight"
+msgstr "middernag"
+
+msgid "noon"
+msgstr "middag"
+
+msgid "Monday"
+msgstr "Maandag"
+
+msgid "Tuesday"
+msgstr "Dinsdag"
+
+msgid "Wednesday"
+msgstr "Woensdag"
+
+msgid "Thursday"
+msgstr "Donderdag"
+
+msgid "Friday"
+msgstr "Vrydag"
+
+msgid "Saturday"
+msgstr "Saterdag"
+
+msgid "Sunday"
+msgstr "Sondag"
+
+msgid "Mon"
+msgstr "Ma"
+
+msgid "Tue"
+msgstr "Di"
+
+msgid "Wed"
+msgstr "Wo"
+
+msgid "Thu"
+msgstr "Do"
+
+msgid "Fri"
+msgstr "Vr"
+
+msgid "Sat"
+msgstr "Sa"
+
+msgid "Sun"
+msgstr "So"
+
+msgid "January"
+msgstr "Januarie"
+
+msgid "February"
+msgstr "Februarie"
+
+msgid "March"
+msgstr "Maart"
+
+msgid "April"
+msgstr "April"
+
+msgid "May"
+msgstr "Mei"
+
+msgid "June"
+msgstr "Junie"
+
+msgid "July"
+msgstr "Julie"
+
+msgid "August"
+msgstr "Augustus"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "Oktober"
+
+msgid "November"
+msgstr "November"
+
+msgid "December"
+msgstr "Desember"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mrt"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "mei"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aug"
+
+msgid "sep"
+msgstr "sept"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "des"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Maart"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mei"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junie"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julie"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Des."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Januarie"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Februarie"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Maart"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mei"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junie"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julie"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Augustus"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "September"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Oktober"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "November"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Desember"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Hierdie is nie ’n geldige IPv6-adres nie."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "of"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d jaar"
+msgstr[1] "%(num)d jaar"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d maand"
+msgstr[1] "%(num)d maande"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d week"
+msgstr[1] "%(num)d weke"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d dag"
+msgstr[1] "%(num)d dae"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d uur"
+msgstr[1] "%(num)d uur"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuut"
+msgstr[1] "%(num)d minute"
+
+msgid "Forbidden"
+msgstr "Verbode"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-verifikasie het misluk. Versoek is laat val."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"U sien hierdie boodskap omdat dié HTTPS-werf vereis dat u webblaaier ’n "
+"“Referer header” moet stuur, maar dit is nie gestuur nie. Hierdie header is "
+"vir sekuriteitsredes nodig om te verseker dat u blaaier nie deur derde "
+"partye gekaap is nie."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"As “Referer headers” in u blaaier gedeaktiveer is, heraktiveer hulle asb. "
+"ten minste vir dié werf, of vir HTTPS-verbindings, of vir “same-origin”-"
+"versoeke."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Indien u die -etiket gebruik "
+"of die “Referrer-Policy: no-referrer” header gebruik, verwyder hulle asb. "
+"Die CSRF-beskerming vereis die “Referer” header om streng kontrole van die "
+"verwysende bladsy te doen. Indien u besorg is oor privaatheid, gebruik "
+"alternatiewe soos vir skakels na derdepartywebwerwe."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"U sien hierdie boodskap omdat dié werf ’n CSRF-koekie benodig wanneer vorms "
+"ingedien word. Dié koekie word vir sekuriteitsredes benodig om te te "
+"verseker dat u blaaier nie deur derde partye gekaap word nie."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Indien koekies in u blaaier gedeaktiveer is, aktiveerder hulle asb. ten "
+"minste vir dié werf, of vir “same-origin”-versoeke."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Meer inligting is beskikbaar met DEBUG=True."
+
+msgid "No year specified"
+msgstr "Geen jaar gespesifiseer nie"
+
+msgid "Date out of range"
+msgstr "Datum buite omvang"
+
+msgid "No month specified"
+msgstr "Geen maand gespesifiseer nie"
+
+msgid "No day specified"
+msgstr "Geen dag gespesifiseer nie"
+
+msgid "No week specified"
+msgstr "Geen week gespesifiseer nie"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Geen %(verbose_name_plural)s beskikbaar nie"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Toekomstige %(verbose_name_plural)s is nie beskikbaar nie, omdat "
+"%(class_name)s.allow_future vals is."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Ongeldige datumstring “%(datestr)s” gegewe die formaat “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Geen %(verbose_name)s gevind vir die soektog"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Bladsy is nie “last” nie, en dit kan nie omgeskakel word na ’n heelgetal nie."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Ongeldige bladsy (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Leë lys en “%(class_name)s.allow_empty” is vals."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Gidsindekse word nie hier toegelaat nie."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” bestaan nie."
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Indeks van %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Die installasie was suksesvol! Geluk!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Sien die vrystellingsnotas vir Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"U sien dié bladsy omdat DEBUG=True in die settings-lêer is en geen URL’e "
+"opgestel is nie."
+
+msgid "Django Documentation"
+msgstr "Django-dokumentasie"
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr "Kom aan die gang met Django"
+
+msgid "Django Community"
+msgstr "Django-gemeenskap"
+
+msgid "Connect, get help, or contribute"
+msgstr "Kontak, kry hulp om dra by"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..f0a04129
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po
new file mode 100644
index 00000000..25a491b5
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/LC_MESSAGES/django.po
@@ -0,0 +1,1389 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Bashar Al-Abdulhadi, 2015-2016,2020-2021
+# Bashar Al-Abdulhadi, 2014
+# Eyad Toma , 2013-2014
+# Jannis Leidel , 2011
+# Mariusz Felisiak , 2021
+# Muaaz Alsaied, 2020
+# Omar Al-Ithawi , 2020
+# Ossama Khayat , 2011
+# Tony xD , 2020
+# صفا الفليج , 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"PO-Revision-Date: 2021-11-24 16:27+0000\n"
+"Last-Translator: Mariusz Felisiak \n"
+"Language-Team: Arabic (http://www.transifex.com/django/django/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+msgid "Afrikaans"
+msgstr "الإفريقية"
+
+msgid "Arabic"
+msgstr "العربيّة"
+
+msgid "Algerian Arabic"
+msgstr "عربي جزائري"
+
+msgid "Asturian"
+msgstr "الأسترية"
+
+msgid "Azerbaijani"
+msgstr "الأذربيجانية"
+
+msgid "Bulgarian"
+msgstr "البلغاريّة"
+
+msgid "Belarusian"
+msgstr "البيلاروسية"
+
+msgid "Bengali"
+msgstr "البنغاليّة"
+
+msgid "Breton"
+msgstr "البريتونية"
+
+msgid "Bosnian"
+msgstr "البوسنيّة"
+
+msgid "Catalan"
+msgstr "الكتلانيّة"
+
+msgid "Czech"
+msgstr "التشيكيّة"
+
+msgid "Welsh"
+msgstr "الويلز"
+
+msgid "Danish"
+msgstr "الدنماركيّة"
+
+msgid "German"
+msgstr "الألمانيّة"
+
+msgid "Lower Sorbian"
+msgstr "الصربية السفلى"
+
+msgid "Greek"
+msgstr "اليونانيّة"
+
+msgid "English"
+msgstr "الإنجليزيّة"
+
+msgid "Australian English"
+msgstr "الإنجليزية الإسترالية"
+
+msgid "British English"
+msgstr "الإنجليزيّة البريطانيّة"
+
+msgid "Esperanto"
+msgstr "الاسبرانتو"
+
+msgid "Spanish"
+msgstr "الإسبانيّة"
+
+msgid "Argentinian Spanish"
+msgstr "الأسبانية الأرجنتينية"
+
+msgid "Colombian Spanish"
+msgstr "الكولومبية الإسبانية"
+
+msgid "Mexican Spanish"
+msgstr "الأسبانية المكسيكية"
+
+msgid "Nicaraguan Spanish"
+msgstr "الإسبانية النيكاراغوية"
+
+msgid "Venezuelan Spanish"
+msgstr "الإسبانية الفنزويلية"
+
+msgid "Estonian"
+msgstr "الإستونيّة"
+
+msgid "Basque"
+msgstr "الباسك"
+
+msgid "Persian"
+msgstr "الفارسيّة"
+
+msgid "Finnish"
+msgstr "الفنلنديّة"
+
+msgid "French"
+msgstr "الفرنسيّة"
+
+msgid "Frisian"
+msgstr "الفريزيّة"
+
+msgid "Irish"
+msgstr "الإيرلنديّة"
+
+msgid "Scottish Gaelic"
+msgstr "الغيلية الأسكتلندية"
+
+msgid "Galician"
+msgstr "الجليقيّة"
+
+msgid "Hebrew"
+msgstr "العبريّة"
+
+msgid "Hindi"
+msgstr "الهندية"
+
+msgid "Croatian"
+msgstr "الكرواتيّة"
+
+msgid "Upper Sorbian"
+msgstr "الصربية العليا"
+
+msgid "Hungarian"
+msgstr "الهنغاريّة"
+
+msgid "Armenian"
+msgstr "الأرمنية"
+
+msgid "Interlingua"
+msgstr "اللغة الوسيطة"
+
+msgid "Indonesian"
+msgstr "الإندونيسيّة"
+
+msgid "Igbo"
+msgstr "الإيبو"
+
+msgid "Ido"
+msgstr "ايدو"
+
+msgid "Icelandic"
+msgstr "الآيسلنديّة"
+
+msgid "Italian"
+msgstr "الإيطاليّة"
+
+msgid "Japanese"
+msgstr "اليابانيّة"
+
+msgid "Georgian"
+msgstr "الجورجيّة"
+
+msgid "Kabyle"
+msgstr "القبائل"
+
+msgid "Kazakh"
+msgstr "الكازاخستانية"
+
+msgid "Khmer"
+msgstr "الخمر"
+
+msgid "Kannada"
+msgstr "الهنديّة (كنّادا)"
+
+msgid "Korean"
+msgstr "الكوريّة"
+
+msgid "Kyrgyz"
+msgstr "قيرغيز"
+
+msgid "Luxembourgish"
+msgstr "اللوكسمبرجية"
+
+msgid "Lithuanian"
+msgstr "اللتوانيّة"
+
+msgid "Latvian"
+msgstr "اللاتفيّة"
+
+msgid "Macedonian"
+msgstr "المقدونيّة"
+
+msgid "Malayalam"
+msgstr "المايالام"
+
+msgid "Mongolian"
+msgstr "المنغوليّة"
+
+msgid "Marathi"
+msgstr "المهاراتية"
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "البورمية"
+
+msgid "Norwegian Bokmål"
+msgstr "النرويجية"
+
+msgid "Nepali"
+msgstr "النيبالية"
+
+msgid "Dutch"
+msgstr "الهولنديّة"
+
+msgid "Norwegian Nynorsk"
+msgstr "النينورسك نرويجيّة"
+
+msgid "Ossetic"
+msgstr "الأوسيتيكية"
+
+msgid "Punjabi"
+msgstr "البنجابيّة"
+
+msgid "Polish"
+msgstr "البولنديّة"
+
+msgid "Portuguese"
+msgstr "البرتغاليّة"
+
+msgid "Brazilian Portuguese"
+msgstr "البرتغاليّة البرازيليّة"
+
+msgid "Romanian"
+msgstr "الرومانيّة"
+
+msgid "Russian"
+msgstr "الروسيّة"
+
+msgid "Slovak"
+msgstr "السلوفاكيّة"
+
+msgid "Slovenian"
+msgstr "السلوفانيّة"
+
+msgid "Albanian"
+msgstr "الألبانيّة"
+
+msgid "Serbian"
+msgstr "الصربيّة"
+
+msgid "Serbian Latin"
+msgstr "اللاتينيّة الصربيّة"
+
+msgid "Swedish"
+msgstr "السويديّة"
+
+msgid "Swahili"
+msgstr "السواحلية"
+
+msgid "Tamil"
+msgstr "التاميل"
+
+msgid "Telugu"
+msgstr "التيلوغو"
+
+msgid "Tajik"
+msgstr "طاجيك"
+
+msgid "Thai"
+msgstr "التايلنديّة"
+
+msgid "Turkmen"
+msgstr "تركمان"
+
+msgid "Turkish"
+msgstr "التركيّة"
+
+msgid "Tatar"
+msgstr "التتاريية"
+
+msgid "Udmurt"
+msgstr "الأدمرتية"
+
+msgid "Ukrainian"
+msgstr "الأكرانيّة"
+
+msgid "Urdu"
+msgstr "الأوردو"
+
+msgid "Uzbek"
+msgstr "الأوزبكي"
+
+msgid "Vietnamese"
+msgstr "الفيتناميّة"
+
+msgid "Simplified Chinese"
+msgstr "الصينيّة المبسطة"
+
+msgid "Traditional Chinese"
+msgstr "الصينيّة التقليدية"
+
+msgid "Messages"
+msgstr "الرسائل"
+
+msgid "Site Maps"
+msgstr "خرائط الموقع"
+
+msgid "Static Files"
+msgstr "الملفات الثابتة"
+
+msgid "Syndication"
+msgstr "توظيف النشر"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "رقم الصفحة هذا ليس عدداً طبيعياً"
+
+msgid "That page number is less than 1"
+msgstr "رقم الصفحة أقل من 1"
+
+msgid "That page contains no results"
+msgstr "هذه الصفحة لا تحتوي على نتائج"
+
+msgid "Enter a valid value."
+msgstr "أدخِل قيمة صحيحة."
+
+msgid "Enter a valid URL."
+msgstr "أدخِل رابطًا صحيحًا."
+
+msgid "Enter a valid integer."
+msgstr "أدخِل عدداً طبيعياً."
+
+msgid "Enter a valid email address."
+msgstr "أدخِل عنوان بريد إلكتروني صحيح."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr "أدخل اختصار 'slug' صحيح يتكوّن من أحرف، أرقام، شرطات سفلية وعاديّة."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"أدخل اختصار 'slug' صحيح يتكون من أحرف Unicode أو أرقام أو شرطات سفلية أو "
+"واصلات."
+
+msgid "Enter a valid IPv4 address."
+msgstr "أدخِل عنوان IPv4 صحيح."
+
+msgid "Enter a valid IPv6 address."
+msgstr "أدخِل عنوان IPv6 صحيح."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "أدخِل عنوان IPv4 أو عنوان IPv6 صحيح."
+
+msgid "Enter only digits separated by commas."
+msgstr "أدخِل فقط أرقامًا تفصلها الفواصل."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "تحقق من أن هذه القيمة هي %(limit_value)s (إنها %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "تحقق من أن تكون هذه القيمة أقل من %(limit_value)s أو مساوية لها."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "تحقق من أن تكون هذه القيمة أكثر من %(limit_value)s أو مساوية لها."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[1] ""
+"تأكد أن هذه القيمة تحتوي على حرف أو رمز %(limit_value)d على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[2] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف و رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[3] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[4] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[5] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[1] ""
+"تأكد أن هذه القيمة تحتوي على حرف أو رمز %(limit_value)d على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[2] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف و رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[3] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[4] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[5] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "أدخل رقماً."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[1] "تحقق من أن تدخل رقم %(max)s لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s رقمين لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[1] "تحقق من أن تدخل خانة %(max)s عشرية لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s خانتين عشريتين لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[1] "تحقق من أن تدخل رقم %(max)s قبل الفاصل العشري لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s رقمين قبل الفاصل العشري لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"امتداد الملف “%(extension)s” غير مسموح به. الامتدادات المسموح بها هي:"
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "الأحرف الخالية غير مسموح بها."
+
+msgid "and"
+msgstr "و"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s بهذا %(field_labels)s موجود سلفاً."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "القيمة %(value)r ليست خيارا صحيحاً."
+
+msgid "This field cannot be null."
+msgstr "لا يمكن تعيين null كقيمة لهذا الحقل."
+
+msgid "This field cannot be blank."
+msgstr "لا يمكن ترك هذا الحقل فارغاً."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s يجب أن يكون فريد لـ %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "حقل نوع: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "قيمة '%(value)s' يجب أن تكون True أو False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "قيمة “%(value)s” يجب أن تكون True , False أو None."
+
+msgid "Boolean (Either True or False)"
+msgstr "ثنائي (إما True أو False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "سلسلة نص (%(max_length)s كحد أقصى)"
+
+msgid "Comma-separated integers"
+msgstr "أرقام صحيحة مفصولة بفواصل"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"قيمة '%(value)s' ليست من بُنية تاريخ صحيحة. القيمة يجب ان تكون من البُنية YYYY-"
+"MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr "قيمة '%(value)s' من بُنية صحيحة (YYYY-MM-DD) لكنها تحوي تاريخ غير صحيح."
+
+msgid "Date (without time)"
+msgstr "التاريخ (دون الوقت)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"قيمة '%(value)s' ليست من بُنية صحيحة. القيمة يجب ان تكون من البُنية YYYY-MM-DD "
+"HH:MM[:ss[.uuuuuu]][TZ] ."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"قيمة '%(value)s' من بُنية صحيحة (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) لكنها "
+"تحوي وقت و تاريخ غير صحيحين."
+
+msgid "Date (with time)"
+msgstr "التاريخ (مع الوقت)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "قيمة '%(value)s' يجب ان تكون عدد عشري."
+
+msgid "Decimal number"
+msgstr "رقم عشري"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"قيمة '%(value)s' ليست بنسق صحيح. القيمة يجب ان تكون من التنسيق ([DD] "
+"[[HH:]MM:]ss[.uuuuuu])"
+
+msgid "Duration"
+msgstr "المدّة"
+
+msgid "Email address"
+msgstr "عنوان بريد إلكتروني"
+
+msgid "File path"
+msgstr "مسار الملف"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "قيمة '%(value)s' يجب ان تكون عدد تعويم."
+
+msgid "Floating point number"
+msgstr "رقم فاصلة عائمة"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "قيمة '%(value)s' يجب ان تكون عدد طبيعي."
+
+msgid "Integer"
+msgstr "عدد صحيح"
+
+msgid "Big (8 byte) integer"
+msgstr "عدد صحيح كبير (8 بايت)"
+
+msgid "Small integer"
+msgstr "عدد صحيح صغير"
+
+msgid "IPv4 address"
+msgstr "عنوان IPv4"
+
+msgid "IP address"
+msgstr "عنوان IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "قيمة '%(value)s' يجب ان تكون None أو True أو False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "ثنائي (إما True أو False أو None)"
+
+msgid "Positive big integer"
+msgstr "عدد صحيح موجب كبير"
+
+msgid "Positive integer"
+msgstr "عدد صحيح موجب"
+
+msgid "Positive small integer"
+msgstr "عدد صحيح صغير موجب"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (حتى %(max_length)s)"
+
+msgid "Text"
+msgstr "نص"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"قيمة '%(value)s' ليست بنسق صحيح. القيمة يجب ان تكون من التنسيق\n"
+"HH:MM[:ss[.uuuuuu]]"
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"قيمة '%(value)s' من بُنية صحيحة (HH:MM[:ss[.uuuuuu]]) لكنها تحوي وقت غير صحيح."
+
+msgid "Time"
+msgstr "وقت"
+
+msgid "URL"
+msgstr "رابط"
+
+msgid "Raw binary data"
+msgstr "البيانات الثنائية الخام"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "القيمة \"%(value)s\" ليست UUID صالح."
+
+msgid "Universally unique identifier"
+msgstr "معرّف فريد عالمياً"
+
+msgid "File"
+msgstr "ملف"
+
+msgid "Image"
+msgstr "صورة"
+
+msgid "A JSON object"
+msgstr "كائن JSON"
+
+msgid "Value must be valid JSON."
+msgstr "يجب أن تكون قيمة JSON صالحة."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "النموذج %(model)s ذو الحقل و القيمة %(field)s %(value)r غير موجود."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "الحقل المرتبط (تم تحديد النوع وفقاً للحقل المرتبط)"
+
+msgid "One-to-one relationship"
+msgstr "علاقة واحد إلى واحد"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s علاقة"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s علاقات"
+
+msgid "Many-to-many relationship"
+msgstr "علاقة متعدد إلى متعدد"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "هذا الحقل مطلوب."
+
+msgid "Enter a whole number."
+msgstr "أدخل رقما صحيحا."
+
+msgid "Enter a valid date."
+msgstr "أدخل تاريخاً صحيحاً."
+
+msgid "Enter a valid time."
+msgstr "أدخل وقتاً صحيحاً."
+
+msgid "Enter a valid date/time."
+msgstr "أدخل تاريخاً/وقتاً صحيحاً."
+
+msgid "Enter a valid duration."
+msgstr "أدخل مدّة صحيحة"
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "يجب أن يكون عدد الأيام بين {min_days} و {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "لم يتم ارسال ملف، الرجاء التأكد من نوع ترميز الاستمارة."
+
+msgid "No file was submitted."
+msgstr "لم يتم إرسال اي ملف."
+
+msgid "The submitted file is empty."
+msgstr "الملف الذي قمت بإرساله فارغ."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[1] ""
+"تأكد أن إسم هذا الملف يحتوي على حرف %(max)d على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[2] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرفين على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[3] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[4] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[5] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "رجاءً أرسل ملف أو صح علامة صح عند مربع اختيار \"فارغ\"، وليس كلاهما."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"قم برفع صورة صحيحة، الملف الذي قمت برفعه إما أنه ليس ملفا لصورة أو أنه ملف "
+"معطوب."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة."
+
+msgid "Enter a list of values."
+msgstr "أدخل قائمة من القيم."
+
+msgid "Enter a complete value."
+msgstr "إدخال قيمة كاملة."
+
+msgid "Enter a valid UUID."
+msgstr "أدخل قيمة UUID صحيحة."
+
+msgid "Enter a valid JSON."
+msgstr "أدخل مدخل JSON صالح."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(الحقل الخفي %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"بيانات نموذج الإدارة مفقودة أو تم العبث بها. الحقول المفقودة: "
+"%(field_names)s. قد تحتاج إلى تقديم تقرير خطأ إذا استمرت المشكلة."
+
+#, python-format
+msgid "Please submit at most %d form."
+msgid_plural "Please submit at most %d forms."
+msgstr[0] "الرجاء إرسال %d إستمارة على الأكثر."
+msgstr[1] "الرجاء إرسال %d إستمارة على الأكثر."
+msgstr[2] "الرجاء إرسال %d إستمارة على الأكثر."
+msgstr[3] "الرجاء إرسال %d إستمارة على الأكثر."
+msgstr[4] "الرجاء إرسال %d إستمارة على الأكثر."
+msgstr[5] "الرجاء إرسال %d إستمارة على الأكثر."
+
+#, python-format
+msgid "Please submit at least %d form."
+msgid_plural "Please submit at least %d forms."
+msgstr[0] "الرجاء إرسال %d إستمارة على الأقل."
+msgstr[1] "الرجاء إرسال %d إستمارة على الأقل."
+msgstr[2] "الرجاء إرسال %d إستمارة على الأقل."
+msgstr[3] "الرجاء إرسال %d إستمارة على الأقل."
+msgstr[4] "الرجاء إرسال %d إستمارة على الأقل."
+msgstr[5] "الرجاء إرسال %d إستمارة على الأقل."
+
+msgid "Order"
+msgstr "الترتيب"
+
+msgid "Delete"
+msgstr "احذف"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "رجاء صحّح بيانات %(field)s المتكررة."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "رجاء صحّح بيانات %(field)s المتكررة والتي يجب أن تكون مُميّزة."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"رجاء صحّح بيانات %(field_name)s المتكررة والتي يجب أن تكون مُميّزة لـ%(lookup)s "
+"في %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "رجاءً صحّح القيم المُكرّرة أدناه."
+
+msgid "The inline value did not match the parent instance."
+msgstr "لا تتطابق القيمة المضمنة مع المثيل الأصلي."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" ليست قيمة صالحة."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s لا يمكن تفسيرها في المنطقة الزمنية %(current_timezone)s; قد "
+"تكون غامضة أو أنها غير موجودة."
+
+msgid "Clear"
+msgstr "تفريغ"
+
+msgid "Currently"
+msgstr "حالياً"
+
+msgid "Change"
+msgstr "عدّل"
+
+msgid "Unknown"
+msgstr "مجهول"
+
+msgid "Yes"
+msgstr "نعم"
+
+msgid "No"
+msgstr "لا"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "نعم,لا,ربما"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d بايت"
+msgstr[1] "بايت واحد"
+msgstr[2] "بايتان"
+msgstr[3] "%(size)d بايتان"
+msgstr[4] "%(size)d بايت"
+msgstr[5] "%(size)d بايت"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s ك.ب"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s م.ب"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s ج.ب"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s ت.ب"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s ب.ب"
+
+msgid "p.m."
+msgstr "م"
+
+msgid "a.m."
+msgstr "ص"
+
+msgid "PM"
+msgstr "م"
+
+msgid "AM"
+msgstr "ص"
+
+msgid "midnight"
+msgstr "منتصف الليل"
+
+msgid "noon"
+msgstr "ظهراً"
+
+msgid "Monday"
+msgstr "الاثنين"
+
+msgid "Tuesday"
+msgstr "الثلاثاء"
+
+msgid "Wednesday"
+msgstr "الأربعاء"
+
+msgid "Thursday"
+msgstr "الخميس"
+
+msgid "Friday"
+msgstr "الجمعة"
+
+msgid "Saturday"
+msgstr "السبت"
+
+msgid "Sunday"
+msgstr "الأحد"
+
+msgid "Mon"
+msgstr "إثنين"
+
+msgid "Tue"
+msgstr "ثلاثاء"
+
+msgid "Wed"
+msgstr "أربعاء"
+
+msgid "Thu"
+msgstr "خميس"
+
+msgid "Fri"
+msgstr "جمعة"
+
+msgid "Sat"
+msgstr "سبت"
+
+msgid "Sun"
+msgstr "أحد"
+
+msgid "January"
+msgstr "يناير"
+
+msgid "February"
+msgstr "فبراير"
+
+msgid "March"
+msgstr "مارس"
+
+msgid "April"
+msgstr "إبريل"
+
+msgid "May"
+msgstr "مايو"
+
+msgid "June"
+msgstr "يونيو"
+
+msgid "July"
+msgstr "يوليو"
+
+msgid "August"
+msgstr "أغسطس"
+
+msgid "September"
+msgstr "سبتمبر"
+
+msgid "October"
+msgstr "أكتوبر"
+
+msgid "November"
+msgstr "نوفمبر"
+
+msgid "December"
+msgstr "ديسمبر"
+
+msgid "jan"
+msgstr "يناير"
+
+msgid "feb"
+msgstr "فبراير"
+
+msgid "mar"
+msgstr "مارس"
+
+msgid "apr"
+msgstr "إبريل"
+
+msgid "may"
+msgstr "مايو"
+
+msgid "jun"
+msgstr "يونيو"
+
+msgid "jul"
+msgstr "يوليو"
+
+msgid "aug"
+msgstr "أغسطس"
+
+msgid "sep"
+msgstr "سبتمبر"
+
+msgid "oct"
+msgstr "أكتوبر"
+
+msgid "nov"
+msgstr "نوفمبر"
+
+msgid "dec"
+msgstr "ديسمبر"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "يناير"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "فبراير"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "إبريل"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "مايو"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "يونيو"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "يوليو"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "أغسطس"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "سبتمبر"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "أكتوبر"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "نوفمبر"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "ديسمبر"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "يناير"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "فبراير"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "أبريل"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "مايو"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "يونيو"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "يوليو"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "أغسطس"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "سبتمبر"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "أكتوبر"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "نوفمبر"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "ديسمبر"
+
+msgid "This is not a valid IPv6 address."
+msgstr "هذا ليس عنوان IPv6 صحيح."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "أو"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr "، "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d سنة"
+msgstr[1] "%(num)d سنة"
+msgstr[2] "%(num)d سنتين"
+msgstr[3] "%(num)d سنوات"
+msgstr[4] "%(num)d سنوات"
+msgstr[5] "%(num)d سنوات"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d شهر"
+msgstr[1] "%(num)d شهر"
+msgstr[2] "%(num)d شهرين"
+msgstr[3] "%(num)d أشهر"
+msgstr[4] "%(num)d أشهر"
+msgstr[5] "%(num)d أشهر"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d أسبوع"
+msgstr[1] "%(num)d أسبوع"
+msgstr[2] "%(num)d أسبوعين"
+msgstr[3] "%(num)d أسابيع"
+msgstr[4] "%(num)d أسابيع"
+msgstr[5] "%(num)d أسابيع"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d يوم"
+msgstr[1] "%(num)d يوم"
+msgstr[2] "%(num)d يومين"
+msgstr[3] "%(num)d أيام"
+msgstr[4] "%(num)d يوم"
+msgstr[5] "%(num)d أيام"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d ساعة"
+msgstr[1] "%(num)d ساعة"
+msgstr[2] "%(num)d ساعتين"
+msgstr[3] "%(num)d ساعات"
+msgstr[4] "%(num)d ساعة"
+msgstr[5] "%(num)d ساعات"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d دقيقة"
+msgstr[1] "%(num)d دقيقة"
+msgstr[2] "%(num)d دقيقتين"
+msgstr[3] "%(num)d دقائق"
+msgstr[4] "%(num)d دقيقة"
+msgstr[5] "%(num)d دقيقة"
+
+msgid "Forbidden"
+msgstr "ممنوع"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "تم الفشل للتحقق من CSRF. تم إنهاء الطلب."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب إرسال “Referer header” بواسطة "
+"متصفح الويب الخاص بك، ولكن لم يتم إرسال أي منها. هذا مطلوب لأسباب أمنية، "
+"لضمان عدم اختطاف متصفحك من قبل أطراف ثالثة."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"إذا قمت بتكوين المستعرض لتعطيل رؤوس “Referer” ، فيرجى إعادة تمكينها ، على "
+"الأقل لهذا الموقع ، أو لاتصالات HTTPS ، أو لطلبات “same-origin”."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"إذا كنت تستخدم العلامة أو "
+"تضمين رأس “Referrer-Policy: no-referrer”، يرجى إزالتها. تتطلب حماية CSRF أن "
+"يقوم رأس “Referer” بإجراء فحص صارم للمراجع. إذا كنت قلقًا بشأن الخصوصية ، "
+"فاستخدم بدائل مثل للروابط إلى مواقع الجهات الخارجية."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"أنت ترى هذه الرسالة لأن هذا الموقع يتطلب كعكة CSRF عند تقديم النماذج. ملف "
+"الكعكة هذا مطلوب لأسباب أمنية في تعريف الإرتباط، لضمان أنه لم يتم اختطاف "
+"المتصفح من قبل أطراف أخرى."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"إذا قمت بضبط المتصفح لتعطيل الكوكيز الرجاء إعادة تغعيلها، على الأقل بالنسبة "
+"لهذا الموقع، أو للطلبات من “same-origin”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "يتوفر مزيد من المعلومات عند ضبط الخيار DEBUG=True."
+
+msgid "No year specified"
+msgstr "لم تحدد السنة"
+
+msgid "Date out of range"
+msgstr "التاريخ خارج النطاق"
+
+msgid "No month specified"
+msgstr "لم تحدد الشهر"
+
+msgid "No day specified"
+msgstr "لم تحدد اليوم"
+
+msgid "No week specified"
+msgstr "لم تحدد الأسبوع"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "لا يوجد %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"التاريخ بالمستقبل %(verbose_name_plural)s غير متوفر لأن قيمة %(class_name)s."
+"allow_future هي False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "نسق تاريخ غير صحيح \"%(datestr)s\" محدد بالشكل ''%(format)s\""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "لم يعثر على أي %(verbose_name)s مطابقة لهذا الإستعلام"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "الصفحة ليست \"الأخيرة\"، كما لا يمكن تحويل القيمة إلى رقم طبيعي."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "صفحة خاطئة (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+"قائمة فارغة و\n"
+"\"%(class_name)s.allow_empty\"\n"
+"قيمته False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "لا يسمح لفهارس الدليل هنا."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "”%(path)s“ غير موجود"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "فهرس لـ %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "تمت عملية التنصيب بنجاح! تهانينا!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"استعراض ملاحظات الإصدار لجانغو %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"تظهر لك هذه الصفحة لأن DEBUG=True في ملف settings خاصتك كما أنك لم تقم بإعداد الروابط URLs."
+
+msgid "Django Documentation"
+msgstr "وثائق تعليمات جانغو"
+
+msgid "Topics, references, & how-to’s"
+msgstr "المواضيع و المراجع و التعليمات"
+
+msgid "Tutorial: A Polling App"
+msgstr "برنامج تعليمي: تطبيق تصويت"
+
+msgid "Get started with Django"
+msgstr "إبدأ مع جانغو"
+
+msgid "Django Community"
+msgstr "مجتمع جانغو"
+
+msgid "Connect, get help, or contribute"
+msgstr "اتصل بنا أو احصل على مساعدة أو ساهم"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..ffedc098
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..8687b1fc
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/formats.py
new file mode 100644
index 00000000..8008ce6e
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F، Y"
+TIME_FORMAT = "g:i A"
+# DATETIME_FORMAT =
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d/m/Y"
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..3c0e3240
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po
new file mode 100644
index 00000000..b32da348
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/LC_MESSAGES/django.po
@@ -0,0 +1,1397 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jihad Bahmaid Al-Halki, 2022
+# Riterix , 2019-2020
+# Riterix , 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
+"PO-Revision-Date: 2022-07-25 06:49+0000\n"
+"Last-Translator: Jihad Bahmaid Al-Halki\n"
+"Language-Team: Arabic (Algeria) (http://www.transifex.com/django/django/"
+"language/ar_DZ/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar_DZ\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+msgid "Afrikaans"
+msgstr "الإفريقية"
+
+msgid "Arabic"
+msgstr "العربية"
+
+msgid "Algerian Arabic"
+msgstr "العربية الجزائرية"
+
+msgid "Asturian"
+msgstr "الأسترية"
+
+msgid "Azerbaijani"
+msgstr "الأذربيجانية"
+
+msgid "Bulgarian"
+msgstr "البلغارية"
+
+msgid "Belarusian"
+msgstr "البيلاروسية"
+
+msgid "Bengali"
+msgstr "البنغالية"
+
+msgid "Breton"
+msgstr "البريتونية"
+
+msgid "Bosnian"
+msgstr "البوسنية"
+
+msgid "Catalan"
+msgstr "الكتلانية"
+
+msgid "Czech"
+msgstr "التشيكية"
+
+msgid "Welsh"
+msgstr "الويلز"
+
+msgid "Danish"
+msgstr "الدنماركية"
+
+msgid "German"
+msgstr "الألمانية"
+
+msgid "Lower Sorbian"
+msgstr "الصربية السفلى"
+
+msgid "Greek"
+msgstr "اليونانية"
+
+msgid "English"
+msgstr "الإنجليزية"
+
+msgid "Australian English"
+msgstr "الإنجليزية الإسترالية"
+
+msgid "British English"
+msgstr "الإنجليزية البريطانية"
+
+msgid "Esperanto"
+msgstr "الاسبرانتو"
+
+msgid "Spanish"
+msgstr "الإسبانية"
+
+msgid "Argentinian Spanish"
+msgstr "الأسبانية الأرجنتينية"
+
+msgid "Colombian Spanish"
+msgstr "الكولومبية الإسبانية"
+
+msgid "Mexican Spanish"
+msgstr "الأسبانية المكسيكية"
+
+msgid "Nicaraguan Spanish"
+msgstr "الإسبانية النيكاراغوية"
+
+msgid "Venezuelan Spanish"
+msgstr "الإسبانية الفنزويلية"
+
+msgid "Estonian"
+msgstr "الإستونية"
+
+msgid "Basque"
+msgstr "الباسك"
+
+msgid "Persian"
+msgstr "الفارسية"
+
+msgid "Finnish"
+msgstr "الفنلندية"
+
+msgid "French"
+msgstr "الفرنسية"
+
+msgid "Frisian"
+msgstr "الفريزية"
+
+msgid "Irish"
+msgstr "الإيرلندية"
+
+msgid "Scottish Gaelic"
+msgstr "الغيلية الأسكتلندية"
+
+msgid "Galician"
+msgstr "الجليقية"
+
+msgid "Hebrew"
+msgstr "العبرية"
+
+msgid "Hindi"
+msgstr "الهندية"
+
+msgid "Croatian"
+msgstr "الكرواتية"
+
+msgid "Upper Sorbian"
+msgstr "الصربية العليا"
+
+msgid "Hungarian"
+msgstr "الهنغارية"
+
+msgid "Armenian"
+msgstr "الأرمنية"
+
+msgid "Interlingua"
+msgstr "اللغة الوسيطة"
+
+msgid "Indonesian"
+msgstr "الإندونيسية"
+
+msgid "Igbo"
+msgstr "إيبو"
+
+msgid "Ido"
+msgstr "ايدو"
+
+msgid "Icelandic"
+msgstr "الآيسلندية"
+
+msgid "Italian"
+msgstr "الإيطالية"
+
+msgid "Japanese"
+msgstr "اليابانية"
+
+msgid "Georgian"
+msgstr "الجورجية"
+
+msgid "Kabyle"
+msgstr "القبائلية"
+
+msgid "Kazakh"
+msgstr "الكازاخستانية"
+
+msgid "Khmer"
+msgstr "الخمر"
+
+msgid "Kannada"
+msgstr "الهندية (كنّادا)"
+
+msgid "Korean"
+msgstr "الكورية"
+
+msgid "Kyrgyz"
+msgstr "القيرغيزية"
+
+msgid "Luxembourgish"
+msgstr "اللوكسمبرجية"
+
+msgid "Lithuanian"
+msgstr "اللتوانية"
+
+msgid "Latvian"
+msgstr "اللاتفية"
+
+msgid "Macedonian"
+msgstr "المقدونية"
+
+msgid "Malayalam"
+msgstr "المايالام"
+
+msgid "Mongolian"
+msgstr "المنغولية"
+
+msgid "Marathi"
+msgstr "المهاراتية"
+
+msgid "Malay"
+msgstr "ملاي"
+
+msgid "Burmese"
+msgstr "البورمية"
+
+msgid "Norwegian Bokmål"
+msgstr "النرويجية"
+
+msgid "Nepali"
+msgstr "النيبالية"
+
+msgid "Dutch"
+msgstr "الهولندية"
+
+msgid "Norwegian Nynorsk"
+msgstr "النينورسك نرويجية"
+
+msgid "Ossetic"
+msgstr "الأوسيتيكية"
+
+msgid "Punjabi"
+msgstr "البنجابية"
+
+msgid "Polish"
+msgstr "البولندية"
+
+msgid "Portuguese"
+msgstr "البرتغالية"
+
+msgid "Brazilian Portuguese"
+msgstr "البرتغالية البرازيلية"
+
+msgid "Romanian"
+msgstr "الرومانية"
+
+msgid "Russian"
+msgstr "الروسية"
+
+msgid "Slovak"
+msgstr "السلوفاكية"
+
+msgid "Slovenian"
+msgstr "السلوفانية"
+
+msgid "Albanian"
+msgstr "الألبانية"
+
+msgid "Serbian"
+msgstr "الصربية"
+
+msgid "Serbian Latin"
+msgstr "اللاتينية الصربية"
+
+msgid "Swedish"
+msgstr "السويدية"
+
+msgid "Swahili"
+msgstr "السواحلية"
+
+msgid "Tamil"
+msgstr "التاميل"
+
+msgid "Telugu"
+msgstr "التيلوغو"
+
+msgid "Tajik"
+msgstr "الطاجيكية"
+
+msgid "Thai"
+msgstr "التايلندية"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "التركية"
+
+msgid "Tatar"
+msgstr "التتاريية"
+
+msgid "Udmurt"
+msgstr "الأدمرتية"
+
+msgid "Ukrainian"
+msgstr "الأكرانية"
+
+msgid "Urdu"
+msgstr "الأوردو"
+
+msgid "Uzbek"
+msgstr "الأوزبكية"
+
+msgid "Vietnamese"
+msgstr "الفيتنامية"
+
+msgid "Simplified Chinese"
+msgstr "الصينية المبسطة"
+
+msgid "Traditional Chinese"
+msgstr "الصينية التقليدية"
+
+msgid "Messages"
+msgstr "الرسائل"
+
+msgid "Site Maps"
+msgstr "خرائط الموقع"
+
+msgid "Static Files"
+msgstr "الملفات الثابتة"
+
+msgid "Syndication"
+msgstr "توظيف النشر"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr "رقم الصفحة ليس عددًا صحيحًا"
+
+msgid "That page number is less than 1"
+msgstr "رقم الصفحة أقل من 1"
+
+msgid "That page contains no results"
+msgstr "هذه الصفحة لا تحتوي على نتائج"
+
+msgid "Enter a valid value."
+msgstr "أدخل قيمة صحيحة."
+
+msgid "Enter a valid URL."
+msgstr "أدخل رابطاً صحيحاً."
+
+msgid "Enter a valid integer."
+msgstr "أدخل رقم صالح."
+
+msgid "Enter a valid email address."
+msgstr "أدخل عنوان بريد إلكتروني صحيح."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"أدخل “slug” صالحة تتكون من أحرف أو أرقام أو الشرطة السفلية أو الواصلات."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"أدخل “slug” صالحة تتكون من أحرف Unicode أو الأرقام أو الشرطة السفلية أو "
+"الواصلات."
+
+msgid "Enter a valid IPv4 address."
+msgstr "أدخل عنوان IPv4 صحيح."
+
+msgid "Enter a valid IPv6 address."
+msgstr "أدخل عنوان IPv6 صحيح."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "أدخل عنوان IPv4 أو عنوان IPv6 صحيح."
+
+msgid "Enter only digits separated by commas."
+msgstr "أدخل أرقاما فقط مفصول بينها بفواصل."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "تحقق من أن هذه القيمة هي %(limit_value)s (إنها %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "تحقق من أن تكون هذه القيمة أقل من %(limit_value)s أو مساوية لها."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "تحقق من أن تكون هذه القيمة أكثر من %(limit_value)s أو مساوية لها."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[1] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[2] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[3] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[4] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[5] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأقل (هي تحتوي "
+"حالياً على %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[1] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[2] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[3] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[4] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+msgstr[5] ""
+"تأكد أن هذه القيمة تحتوي على %(limit_value)d حرف أو رمز على الأكثر (هي تحتوي "
+"حالياً على %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "أدخل رقماً."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[1] "تحقق من أن تدخل رقم %(max)s لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s رقمين لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s أرقام لا أكثر."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[1] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s خانات عشرية لا أكثر."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[1] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[2] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[3] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[4] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+msgstr[5] "تحقق من أن تدخل %(max)s أرقام قبل الفاصل العشري لا أكثر."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"امتداد الملف “%(extension)s” غير مسموح به. الامتدادات المسموح بها هي:"
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "لا يُسمح بالأحرف الخالية."
+
+msgid "and"
+msgstr "و"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s بهذا %(field_labels)s موجود سلفاً."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "القيمة %(value)r ليست خيارا صحيحاً."
+
+msgid "This field cannot be null."
+msgstr "لا يمكن ترك هذا الحقل خالي."
+
+msgid "This field cannot be blank."
+msgstr "لا يمكن ترك هذا الحقل فارغاً."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "النموذج %(model_name)s والحقل %(field_label)s موجود مسبقاً."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s يجب أن يكون فريد لـ %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "حقل نوع: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "يجب أن تكون القيمة “%(value)s” إما True أو False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "يجب أن تكون القيمة “%(value)s” إما True أو False أو None."
+
+msgid "Boolean (Either True or False)"
+msgstr "ثنائي (إما True أو False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "سلسلة نص (%(max_length)s كحد أقصى)"
+
+msgid "Comma-separated integers"
+msgstr "أرقام صحيحة مفصولة بفواصل"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"تحتوي القيمة “%(value)s” على تنسيق تاريخ غير صالح. يجب أن يكون بتنسيق YYYY-"
+"MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"تحتوي القيمة “%(value)s” على التنسيق الصحيح (YYYY-MM-DD) ولكنه تاريخ غير "
+"صالح."
+
+msgid "Date (without time)"
+msgstr "التاريخ (دون الوقت)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق YYYY-MM-DD "
+"HH: MM [: ss [.uuuuuu]] [TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"تحتوي القيمة “%(value)s” على التنسيق الصحيح (YYYY-MM-DD HH: MM [: ss [."
+"uuuuuu]] [TZ]) ولكنها تعد تاريخًا / وقتًا غير صالحين."
+
+msgid "Date (with time)"
+msgstr "التاريخ (مع الوقت)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "يجب أن تكون القيمة “%(value)s” رقمًا عشريًا."
+
+msgid "Decimal number"
+msgstr "رقم عشري"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق [DD] [[HH:] "
+"MM:] ss [.uuuuuu]."
+
+msgid "Duration"
+msgstr "المدّة"
+
+msgid "Email address"
+msgstr "عنوان بريد إلكتروني"
+
+msgid "File path"
+msgstr "مسار الملف"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "يجب أن تكون القيمة “%(value)s” قيمة عائمة."
+
+msgid "Floating point number"
+msgstr "رقم فاصلة عائمة"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "يجب أن تكون القيمة “%(value)s” عددًا صحيحًا."
+
+msgid "Integer"
+msgstr "عدد صحيح"
+
+msgid "Big (8 byte) integer"
+msgstr "عدد صحيح كبير (8 بايت)"
+
+msgid "Small integer"
+msgstr "عدد صحيح صغير"
+
+msgid "IPv4 address"
+msgstr "عنوان IPv4"
+
+msgid "IP address"
+msgstr "عنوان IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "يجب أن تكون القيمة “%(value)s” إما None أو True أو False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "ثنائي (إما True أو False أو None)"
+
+msgid "Positive big integer"
+msgstr "عدد صحيح كبير موجب"
+
+msgid "Positive integer"
+msgstr "عدد صحيح موجب"
+
+msgid "Positive small integer"
+msgstr "عدد صحيح صغير موجب"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (حتى %(max_length)s)"
+
+msgid "Text"
+msgstr "نص"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"تحتوي القيمة “%(value)s” على تنسيق غير صالح. يجب أن يكون بتنسيق HH: MM [: ss "
+"[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"تحتوي القيمة “%(value)s” على التنسيق الصحيح (HH: MM [: ss [.uuuuuu]]) ولكنه "
+"وقت غير صالح."
+
+msgid "Time"
+msgstr "وقت"
+
+msgid "URL"
+msgstr "رابط"
+
+msgid "Raw binary data"
+msgstr "البيانات الثنائية الخام"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” ليس UUID صالحًا."
+
+msgid "Universally unique identifier"
+msgstr "المعرف الفريد العالمي (UUID)"
+
+msgid "File"
+msgstr "ملف"
+
+msgid "Image"
+msgstr "صورة"
+
+msgid "A JSON object"
+msgstr "كائن JSON"
+
+msgid "Value must be valid JSON."
+msgstr "يجب أن تكون قيمة JSON صالحة."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "النموذج %(model)s ذو الحقل و القيمة %(field)s %(value)r غير موجود."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "الحقل المرتبط (تم تحديد النوع وفقاً للحقل المرتبط)"
+
+msgid "One-to-one relationship"
+msgstr "علاقة واحد إلى واحد"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s علاقة"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s علاقات"
+
+msgid "Many-to-many relationship"
+msgstr "علاقة متعدد إلى متعدد"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "هذا الحقل مطلوب."
+
+msgid "Enter a whole number."
+msgstr "أدخل رقما صحيحا."
+
+msgid "Enter a valid date."
+msgstr "أدخل تاريخاً صحيحاً."
+
+msgid "Enter a valid time."
+msgstr "أدخل وقتاً صحيحاً."
+
+msgid "Enter a valid date/time."
+msgstr "أدخل تاريخاً/وقتاً صحيحاً."
+
+msgid "Enter a valid duration."
+msgstr "أدخل مدّة صحيحة"
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "يجب أن يتراوح عدد الأيام بين {min_days} و {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "لم يتم ارسال ملف، الرجاء التأكد من نوع ترميز الاستمارة."
+
+msgid "No file was submitted."
+msgstr "لم يتم إرسال اي ملف."
+
+msgid "The submitted file is empty."
+msgstr "الملف الذي قمت بإرساله فارغ."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[1] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[2] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[3] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[4] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+msgstr[5] ""
+"تأكد أن إسم هذا الملف يحتوي على %(max)d حرف على الأكثر (هو يحتوي الآن على "
+"%(length)d حرف)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"رجاءً أرسل ملف أو صح علامة صح عند مربع اختيار \\\"فارغ\\\"، وليس كلاهما."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"قم برفع صورة صحيحة، الملف الذي قمت برفعه إما أنه ليس ملفا لصورة أو أنه ملف "
+"معطوب."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "انتق خياراً صحيحاً. %(value)s ليس أحد الخيارات المتاحة."
+
+msgid "Enter a list of values."
+msgstr "أدخل قائمة من القيم."
+
+msgid "Enter a complete value."
+msgstr "إدخال قيمة كاملة."
+
+msgid "Enter a valid UUID."
+msgstr "أدخل قيمة UUID صحيحة."
+
+msgid "Enter a valid JSON."
+msgstr "ادخل كائن JSON صالح."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(الحقل الخفي %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"نموذج بيانات الإدارة مفقود أو تم العبث به. %(field_names)sمن الحقول مفقود. "
+"قد تحتاج إلى رفع تقرير بالمشكلة إن استمرت الحالة."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Order"
+msgstr "الترتيب"
+
+msgid "Delete"
+msgstr "احذف"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "رجاء صحّح بيانات %(field)s المتكررة."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "رجاء صحّح بيانات %(field)s المتكررة والتي يجب أن تكون مُميّزة."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"رجاء صحّح بيانات %(field_name)s المتكررة والتي يجب أن تكون مُميّزة لـ%(lookup)s "
+"في %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "رجاءً صحّح القيم المُكرّرة أدناه."
+
+msgid "The inline value did not match the parent instance."
+msgstr "القيمة المضمنة لا تتطابق مع المثيل الأصلي."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "انتق خياراً صحيحاً. اختيارك ليس أحد الخيارات المتاحة."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” ليست قيمة صالحة."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"لا يمكن تفسير٪ %(datetime)s في المنطقة الزمنية٪ %(current_timezone)s؛ قد "
+"تكون غامضة أو غير موجودة."
+
+msgid "Clear"
+msgstr "تفريغ"
+
+msgid "Currently"
+msgstr "حالياً"
+
+msgid "Change"
+msgstr "عدّل"
+
+msgid "Unknown"
+msgstr "مجهول"
+
+msgid "Yes"
+msgstr "نعم"
+
+msgid "No"
+msgstr "لا"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "نعم,لا,ربما"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d بايت"
+msgstr[1] "%(size)d بايت واحد "
+msgstr[2] "%(size)d بايتان"
+msgstr[3] "%(size)d بايت"
+msgstr[4] "%(size)d بايت"
+msgstr[5] "%(size)d بايت"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s ك.ب"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s م.ب"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s ج.ب"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s ت.ب"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s ب.ب"
+
+msgid "p.m."
+msgstr "م"
+
+msgid "a.m."
+msgstr "ص"
+
+msgid "PM"
+msgstr "م"
+
+msgid "AM"
+msgstr "ص"
+
+msgid "midnight"
+msgstr "منتصف الليل"
+
+msgid "noon"
+msgstr "ظهراً"
+
+msgid "Monday"
+msgstr "الاثنين"
+
+msgid "Tuesday"
+msgstr "الثلاثاء"
+
+msgid "Wednesday"
+msgstr "الأربعاء"
+
+msgid "Thursday"
+msgstr "الخميس"
+
+msgid "Friday"
+msgstr "الجمعة"
+
+msgid "Saturday"
+msgstr "السبت"
+
+msgid "Sunday"
+msgstr "الأحد"
+
+msgid "Mon"
+msgstr "إثنين"
+
+msgid "Tue"
+msgstr "ثلاثاء"
+
+msgid "Wed"
+msgstr "أربعاء"
+
+msgid "Thu"
+msgstr "خميس"
+
+msgid "Fri"
+msgstr "جمعة"
+
+msgid "Sat"
+msgstr "سبت"
+
+msgid "Sun"
+msgstr "أحد"
+
+msgid "January"
+msgstr "جانفي"
+
+msgid "February"
+msgstr "فيفري"
+
+msgid "March"
+msgstr "مارس"
+
+msgid "April"
+msgstr "أفريل"
+
+msgid "May"
+msgstr "ماي"
+
+msgid "June"
+msgstr "جوان"
+
+msgid "July"
+msgstr "جويليه"
+
+msgid "August"
+msgstr "أوت"
+
+msgid "September"
+msgstr "سبتمبر"
+
+msgid "October"
+msgstr "أكتوبر"
+
+msgid "November"
+msgstr "نوفمبر"
+
+msgid "December"
+msgstr "ديسمبر"
+
+msgid "jan"
+msgstr "جانفي"
+
+msgid "feb"
+msgstr "فيفري"
+
+msgid "mar"
+msgstr "مارس"
+
+msgid "apr"
+msgstr "أفريل"
+
+msgid "may"
+msgstr "ماي"
+
+msgid "jun"
+msgstr "جوان"
+
+msgid "jul"
+msgstr "جويليه"
+
+msgid "aug"
+msgstr "أوت"
+
+msgid "sep"
+msgstr "سبتمبر"
+
+msgid "oct"
+msgstr "أكتوبر"
+
+msgid "nov"
+msgstr "نوفمبر"
+
+msgid "dec"
+msgstr "ديسمبر"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "جانفي"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "فيفري"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "أفريل"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "ماي"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "جوان"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "جويليه"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "أوت"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "سبتمبر"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "أكتوبر"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "نوفمبر"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "ديسمبر"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "جانفي"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "فيفري"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "أفريل"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "ماي"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "جوان"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "جويليه"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "أوت"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "سبتمبر"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "أكتوبر"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "نوفمبر"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "ديسمبر"
+
+msgid "This is not a valid IPv6 address."
+msgstr "هذا ليس عنوان IPv6 صحيح."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "أو"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr "، "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+msgstr[5] ""
+
+msgid "Forbidden"
+msgstr "ممنوع"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "تم الفشل للتحقق من CSRF. تم إنهاء الطلب."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"أنت ترى هذه الرسالة لأن موقع HTTPS هذا يتطلب \"عنوان مرجعي\" ليتم إرساله "
+"بواسطة متصفح الويب الخاص بك ، ولكن لم يتم إرسال أي شيء. هذا العنوان مطلوب "
+"لأسباب أمنية ، لضمان عدم اختراق متصفحك من قبل أطراف أخرى."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"إذا قمت بتكوين المستعرض الخاص بك لتعطيل رؤوس “Referer” ، فالرجاء إعادة "
+"تمكينها ، على الأقل لهذا الموقع ، أو لاتصالات HTTPS ، أو لطلبات “same-"
+"origin”."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"إذا كنت تستخدم العلامة أو تتضمن رأس “Referrer-Policy: no-referrer” ، فيرجى إزالتها. تتطلب حماية "
+"CSRF رأس “Referer” القيام بالتحقق من “strict referer”. إذا كنت مهتمًا "
+"بالخصوصية ، فاستخدم بدائل مثل للروابط إلى مواقع "
+"الجهات الخارجية."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"تشاهد هذه الرسالة لأن هذا الموقع يتطلب ملف تعريف ارتباط CSRF Cookie عند "
+"إرسال النماذج. ملف تعريف ارتباط Cookie هذا مطلوب لأسباب أمنية ، لضمان عدم "
+"اختطاف متصفحك من قبل أطراف ثالثة."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"إذا قمت بتكوين المستعرض الخاص بك لتعطيل ملفات تعريف الارتباط Cookies ، يرجى "
+"إعادة تمكينها ، على الأقل لهذا الموقع ، أو لطلبات “same-origin”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "يتوفر مزيد من المعلومات عند ضبط الخيار DEBUG=True."
+
+msgid "No year specified"
+msgstr "لم تحدد السنة"
+
+msgid "Date out of range"
+msgstr "تاريخ خارج النطاق"
+
+msgid "No month specified"
+msgstr "لم تحدد الشهر"
+
+msgid "No day specified"
+msgstr "لم تحدد اليوم"
+
+msgid "No week specified"
+msgstr "لم تحدد الأسبوع"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "لا يوجد %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"التاريخ بالمستقبل %(verbose_name_plural)s غير متوفر لأن قيمة %(class_name)s."
+"allow_future هي False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "سلسلة تاريخ غير صالحة “%(datestr)s” شكل معين “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "لم يعثر على أي %(verbose_name)s مطابقة لهذا الإستعلام"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "الصفحة ليست \"الأخيرة\" ، ولا يمكن تحويلها إلى عدد صحيح."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "صفحة خاطئة (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "القائمة فارغة و “%(class_name)s.allow_empty” هي False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "لا يسمح لفهارس الدليل هنا."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” غير موجود"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "فهرس لـ %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "تمَّت عملية التثبيت بنجاح! تهانينا!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"عرض ملاحظات الإصدار ل جانغو "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"تشاهد هذه الصفحة لأن DEBUG = True موجود في ملف الإعدادات الخاص بك ولم تقم بتكوين أي "
+"عناوين URL."
+
+msgid "Django Documentation"
+msgstr "توثيق جانغو"
+
+msgid "Topics, references, & how-to’s"
+msgstr "الموضوعات ، المراجع، & الكيفية"
+
+msgid "Tutorial: A Polling App"
+msgstr "البرنامج التعليمي: تطبيق الاقتراع"
+
+msgid "Get started with Django"
+msgstr "الخطوات الأولى مع جانغو"
+
+msgid "Django Community"
+msgstr "مجتمع جانغو"
+
+msgid "Connect, get help, or contribute"
+msgstr "الاتصال، الحصول على المساعدة أو المساهمة"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..392b3b4a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..2648ca12
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/formats.py
new file mode 100644
index 00000000..cbd361d6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ar_DZ/formats.py
@@ -0,0 +1,29 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "j F Y"
+SHORT_DATETIME_FORMAT = "j F Y H:i"
+FIRST_DAY_OF_WEEK = 0 # Sunday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%Y/%m/%d", # '2006/10/25'
+]
+TIME_INPUT_FORMATS = [
+ "%H:%M", # '14:30
+ "%H:%M:%S", # '14:30:59'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y/%m/%d %H:%M", # '2006/10/25 14:30'
+ "%Y/%m/%d %H:%M:%S", # '2006/10/25 14:30:59'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..31733b2e
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.po
new file mode 100644
index 00000000..417f18db
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ast/LC_MESSAGES/django.po
@@ -0,0 +1,1237 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Ḷḷumex03 , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: Asturian (http://www.transifex.com/django/django/language/"
+"ast/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ast\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikáans"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr "Azerbaixanu"
+
+msgid "Bulgarian"
+msgstr "Búlgaru"
+
+msgid "Belarusian"
+msgstr "Bielorrusu"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "Bretón"
+
+msgid "Bosnian"
+msgstr "Bosniu"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Czech"
+msgstr "Checu"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Danés"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "Griegu"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr ""
+
+msgid "British English"
+msgstr "Inglés británicu"
+
+msgid "Esperanto"
+msgstr "Esperantu"
+
+msgid "Spanish"
+msgstr "Castellán"
+
+msgid "Argentinian Spanish"
+msgstr "Español arxentín"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "Español mexicanu"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español nicaraguanu"
+
+msgid "Venezuelan Spanish"
+msgstr "Español venezolanu"
+
+msgid "Estonian"
+msgstr "Estoniu"
+
+msgid "Basque"
+msgstr "Vascu"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisón"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "Gallegu"
+
+msgid "Hebrew"
+msgstr "Hebréu"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "Húngaru"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesiu"
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italianu"
+
+msgid "Japanese"
+msgstr "Xaponés"
+
+msgid "Georgian"
+msgstr "Xeorxanu"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Canarés"
+
+msgid "Korean"
+msgstr "Coreanu"
+
+msgid "Luxembourgish"
+msgstr "Luxemburgués"
+
+msgid "Lithuanian"
+msgstr "Lituanu"
+
+msgid "Latvian"
+msgstr "Letón"
+
+msgid "Macedonian"
+msgstr "Macedoniu"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Burmese"
+msgstr "Birmanu"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Nepalí"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nynorsk noruegu"
+
+msgid "Ossetic"
+msgstr "Osetiu"
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Polacu"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués brasileñu"
+
+msgid "Romanian"
+msgstr "Rumanu"
+
+msgid "Russian"
+msgstr "Rusu"
+
+msgid "Slovak"
+msgstr "Eslovacu"
+
+msgid "Slovenian"
+msgstr "Eslovenu"
+
+msgid "Albanian"
+msgstr "Albanu"
+
+msgid "Serbian"
+msgstr "Serbiu"
+
+msgid "Serbian Latin"
+msgstr "Serbiu llatín"
+
+msgid "Swedish"
+msgstr "Suecu"
+
+msgid "Swahili"
+msgstr "Suaḥili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Thai"
+msgstr "Tailandés"
+
+msgid "Turkish"
+msgstr "Turcu"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "Udmurtu"
+
+msgid "Ukrainian"
+msgstr "Ucranianu"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chinu simplificáu"
+
+msgid "Traditional Chinese"
+msgstr "Chinu tradicional"
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr ""
+
+msgid "Static Files"
+msgstr ""
+
+msgid "Syndication"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Introduz un valor válidu."
+
+msgid "Enter a valid URL."
+msgstr "Introduz una URL válida."
+
+msgid "Enter a valid integer."
+msgstr ""
+
+msgid "Enter a valid email address."
+msgstr "Introduz una direición de corréu válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Introduz una direición IPv4 válida."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Introduz una direición IPv6 válida."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Introduz una direición IPv4 o IPv6 válida."
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduz namái díxitos separtaos per comes."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Asegúrate qu'esti valor ye %(limit_value)s (ye %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrate qu'esti valor ye menor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrate qu'esti valor ye mayor o igual a %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrate qu'esti valor tien polo menos %(limit_value)d caráuter (tien "
+"%(show_value)d)."
+msgstr[1] ""
+"Asegúrate qu'esti valor tien polo menos %(limit_value)d caráuteres (tien "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrate qu'esti valor tien como muncho %(limit_value)d caráuter (tien "
+"%(show_value)d)."
+msgstr[1] ""
+"Asegúrate qu'esti valor tien como muncho %(limit_value)d caráuteres (tien "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduz un númberu."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrate que nun hai más de %(max)s díxitu en total."
+msgstr[1] "Asegúrate que nun hai más de %(max)s díxitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrate que nun hai más de %(max)s allugamientu decimal."
+msgstr[1] "Asegúrate que nun hai más de %(max)s allugamientos decimales."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrate que nun hai más de %(max)s díxitu enantes del puntu decimal."
+msgstr[1] ""
+"Asegúrate que nun hai más de %(max)s díxitos enantes del puntu decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "Esti campu nun pue ser nulu."
+
+msgid "This field cannot be blank."
+msgstr "Esti campu nun pue tar baleru."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s con esti %(field_label)s yá esiste."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Campu de la triba: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Boleanu (tamién True o False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (fasta %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separtaos per coma"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Data (ensin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Data (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Númberu decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "Direición de corréu"
+
+msgid "File path"
+msgstr "Camín del ficheru"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Númberu de puntu flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Enteru"
+
+msgid "Big (8 byte) integer"
+msgstr "Enteru big (8 byte)"
+
+msgid "IPv4 address"
+msgstr "Direición IPv4"
+
+msgid "IP address"
+msgstr "Direición IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boleanu (tamién True, False o None)"
+
+msgid "Positive integer"
+msgstr "Enteru positivu"
+
+msgid "Positive small integer"
+msgstr "Enteru pequeñu positivu"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (fasta %(max_length)s)"
+
+msgid "Small integer"
+msgstr "Enteru pequeñu"
+
+msgid "Text"
+msgstr "Testu"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos binarios crudos"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Ficheru"
+
+msgid "Image"
+msgstr "Imaxe"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave foriata (triba determinada pol campu rellacionáu)"
+
+msgid "One-to-one relationship"
+msgstr "Rellación a ún"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Rellación a munchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Requierse esti campu."
+
+msgid "Enter a whole number."
+msgstr "Introduz un númberu completu"
+
+msgid "Enter a valid date."
+msgstr "Introduz una data válida."
+
+msgid "Enter a valid time."
+msgstr "Introduz una hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Introduz una data/hora válida."
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Nun s'unvió'l ficheru. Comprueba la triba de cifráu nel formulariu."
+
+msgid "No file was submitted."
+msgstr "No file was submitted."
+
+msgid "The submitted file is empty."
+msgstr "El ficheru dunviáu ta baleru."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrate qu'esti nome de ficheru tien polo menos %(max)d caráuter (tien "
+"%(length)d)."
+msgstr[1] ""
+"Asegúrate qu'esti nome de ficheru tien polo menos %(max)d caráuteres (tien "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Por favor, dunvia un ficheru o conseña la caxella , non dambos."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Xubi una imaxe válida. El ficheru que xubiesti o nun yera una imaxe, o taba "
+"toriada."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Esbilla una escoyeta válida. %(value)s nun una ún de les escoyetes "
+"disponibles."
+
+msgid "Enter a list of values."
+msgstr "Introduz una llista valores."
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campu anubríu %(name)s) %(error)s"
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr ""
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] "Por favor, dunvia %d o menos formularios."
+msgstr[1] "Por favor, dunvia %d o menos formularios."
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "Orde"
+
+msgid "Delete"
+msgstr "Desanciar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, igua'l datu duplicáu de %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor, igua'l datu duplicáu pa %(field)s, el cual tien de ser únicu."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor, igua'l datu duplicáu de %(field_name)s el cual tien de ser únicu "
+"pal %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, igua los valores duplicaos embaxo"
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Esbilla una escoyeta válida. Esa escoyeta nun ye una de les escoyetes "
+"disponibles."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Llimpiar"
+
+msgid "Currently"
+msgstr "Anguaño"
+
+msgid "Change"
+msgstr "Camudar"
+
+msgid "Unknown"
+msgstr "Desconocíu"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "Non"
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr "sí,non,quiciabes"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "Media nueche"
+
+msgid "noon"
+msgstr "Meudía"
+
+msgid "Monday"
+msgstr "Llunes"
+
+msgid "Tuesday"
+msgstr "Martes"
+
+msgid "Wednesday"
+msgstr "Miércoles"
+
+msgid "Thursday"
+msgstr "Xueves"
+
+msgid "Friday"
+msgstr "Vienres"
+
+msgid "Saturday"
+msgstr "Sábadu"
+
+msgid "Sunday"
+msgstr "Domingu"
+
+msgid "Mon"
+msgstr "LLu"
+
+msgid "Tue"
+msgstr "Mar"
+
+msgid "Wed"
+msgstr "Mie"
+
+msgid "Thu"
+msgstr "Xue"
+
+msgid "Fri"
+msgstr "Vie"
+
+msgid "Sat"
+msgstr "Sáb"
+
+msgid "Sun"
+msgstr "Dom"
+
+msgid "January"
+msgstr "Xineru"
+
+msgid "February"
+msgstr "Febreru"
+
+msgid "March"
+msgstr "Marzu"
+
+msgid "April"
+msgstr "Abril"
+
+msgid "May"
+msgstr "Mayu"
+
+msgid "June"
+msgstr "Xunu"
+
+msgid "July"
+msgstr "Xunetu"
+
+msgid "August"
+msgstr "Agostu"
+
+msgid "September"
+msgstr "Setiembre"
+
+msgid "October"
+msgstr "Ochobre"
+
+msgid "November"
+msgstr "Payares"
+
+msgid "December"
+msgstr "Avientu"
+
+msgid "jan"
+msgstr "xin"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "xun"
+
+msgid "jul"
+msgstr "xnt"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "set"
+
+msgid "oct"
+msgstr "och"
+
+msgid "nov"
+msgstr "pay"
+
+msgid "dec"
+msgstr "avi"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Xin."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Mar."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "May."
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Xun."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Xnt."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Set."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Och."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Pay."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Avi."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Xineru"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Febreru"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marzu"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mayu"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Xunu"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Xunetu"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Agostu"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Setiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Ochobre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Payares"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Avientu"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] "%d añu"
+msgstr[1] "%d años"
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] "%d mes"
+msgstr[1] "%d meses"
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] "%d selmana"
+msgstr[1] "%d selmanes"
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "%d día"
+msgstr[1] "%d díes"
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "%d hora"
+msgstr[1] "%d hores"
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "%d minutu"
+msgstr[1] "%d minutos"
+
+msgid "0 minutes"
+msgstr "0 minutos"
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "Nun s'especificó l'añu"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "Nun s'especificó'l mes"
+
+msgid "No day specified"
+msgstr "Nun s'especificó'l día"
+
+msgid "No week specified"
+msgstr "Nun s'especificó la selmana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Ensin %(verbose_name_plural)s disponible"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Nun ta disponible'l %(verbose_name_plural)s futuru porque %(class_name)s."
+"allow_future ye False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Nun s'alcontró %(verbose_name)s que concase cola gueta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Páxina inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Nun tán almitíos equí los indexaos de direutoriu."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índiz de %(directory)s"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..9fe7a1de
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.po
new file mode 100644
index 00000000..2d1c6bd1
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/LC_MESSAGES/django.po
@@ -0,0 +1,1347 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Emin Mastizada , 2018,2020
+# Emin Mastizada , 2015-2016
+# Metin Amiroff , 2011
+# Nicat Məmmədov , 2022
+# Nijat Mammadov, 2024-2025
+# Sevdimali , 2024
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: Nijat Mammadov, 2024-2025\n"
+"Language-Team: Azerbaijani (http://app.transifex.com/django/django/language/"
+"az/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: az\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Ərəb"
+
+msgid "Algerian Arabic"
+msgstr "Əlcəzair Ərəbcəsi"
+
+msgid "Asturian"
+msgstr "Asturiya"
+
+msgid "Azerbaijani"
+msgstr "Azərbaycan"
+
+msgid "Bulgarian"
+msgstr "Bolqar"
+
+msgid "Belarusian"
+msgstr "Belarus"
+
+msgid "Bengali"
+msgstr "Benqal"
+
+msgid "Breton"
+msgstr "Breton"
+
+msgid "Bosnian"
+msgstr "Bosniya"
+
+msgid "Catalan"
+msgstr "Katalon"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Mərkəzi Kürd dili (Sorani)"
+
+msgid "Czech"
+msgstr "Çex"
+
+msgid "Welsh"
+msgstr "Uels"
+
+msgid "Danish"
+msgstr "Danimarka"
+
+msgid "German"
+msgstr "Alman"
+
+msgid "Lower Sorbian"
+msgstr "Aşağı Sorb"
+
+msgid "Greek"
+msgstr "Yunan"
+
+msgid "English"
+msgstr "İngilis"
+
+msgid "Australian English"
+msgstr "Avstraliya İngiliscəsi"
+
+msgid "British English"
+msgstr "Britaniya İngiliscəsi"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "İspan"
+
+msgid "Argentinian Spanish"
+msgstr "Argentina İspancası"
+
+msgid "Colombian Spanish"
+msgstr "Kolumbia İspancası"
+
+msgid "Mexican Spanish"
+msgstr "Meksika İspancası"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nikaraqua İspancası"
+
+msgid "Venezuelan Spanish"
+msgstr "Venesuela İspancası"
+
+msgid "Estonian"
+msgstr "Eston"
+
+msgid "Basque"
+msgstr "Bask"
+
+msgid "Persian"
+msgstr "Fars"
+
+msgid "Finnish"
+msgstr "Fin"
+
+msgid "French"
+msgstr "Fransız"
+
+msgid "Frisian"
+msgstr "Fris"
+
+msgid "Irish"
+msgstr "İrland"
+
+msgid "Scottish Gaelic"
+msgstr "Şotland Keltcəsi"
+
+msgid "Galician"
+msgstr "Qalisiya"
+
+msgid "Hebrew"
+msgstr "İvrit"
+
+msgid "Hindi"
+msgstr "Hind"
+
+msgid "Croatian"
+msgstr "Xorvat"
+
+msgid "Upper Sorbian"
+msgstr "Yuxarı Sorb"
+
+msgid "Hungarian"
+msgstr "Macar"
+
+msgid "Armenian"
+msgstr "Erməni"
+
+msgid "Interlingua"
+msgstr "İnterlinqua"
+
+msgid "Indonesian"
+msgstr "İndoneziya dili"
+
+msgid "Igbo"
+msgstr "İqbo"
+
+msgid "Ido"
+msgstr "İdo"
+
+msgid "Icelandic"
+msgstr "İsland"
+
+msgid "Italian"
+msgstr "İtalyan"
+
+msgid "Japanese"
+msgstr "Yapon"
+
+msgid "Georgian"
+msgstr "Gürcü"
+
+msgid "Kabyle"
+msgstr "Kabile"
+
+msgid "Kazakh"
+msgstr "Qazax"
+
+msgid "Khmer"
+msgstr "Xmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Koreya"
+
+msgid "Kyrgyz"
+msgstr "Qırğız"
+
+msgid "Luxembourgish"
+msgstr "Lüksemburq"
+
+msgid "Lithuanian"
+msgstr "Litva"
+
+msgid "Latvian"
+msgstr "Latış"
+
+msgid "Macedonian"
+msgstr "Makedon"
+
+msgid "Malayalam"
+msgstr "Malayam"
+
+msgid "Mongolian"
+msgstr "Monqol"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malay"
+
+msgid "Burmese"
+msgstr "Birman"
+
+msgid "Norwegian Bokmål"
+msgstr "Norveç Bukmolcası"
+
+msgid "Nepali"
+msgstr "Nepal"
+
+msgid "Dutch"
+msgstr "Niderland"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norveç Nyunorskcası"
+
+msgid "Ossetic"
+msgstr "Osetin"
+
+msgid "Punjabi"
+msgstr "Pəncab"
+
+msgid "Polish"
+msgstr "Polyak"
+
+msgid "Portuguese"
+msgstr "Portuqal"
+
+msgid "Brazilian Portuguese"
+msgstr "Braziliya Portuqalcası"
+
+msgid "Romanian"
+msgstr "Rumın"
+
+msgid "Russian"
+msgstr "Rus"
+
+msgid "Slovak"
+msgstr "Slovak"
+
+msgid "Slovenian"
+msgstr "Sloven"
+
+msgid "Albanian"
+msgstr "Alban"
+
+msgid "Serbian"
+msgstr "Serb"
+
+msgid "Serbian Latin"
+msgstr "Serb (Latın)"
+
+msgid "Swedish"
+msgstr "İsveç"
+
+msgid "Swahili"
+msgstr "Suahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Teluqu"
+
+msgid "Tajik"
+msgstr "Tacik"
+
+msgid "Thai"
+msgstr "Tay"
+
+msgid "Turkmen"
+msgstr "Türkmən"
+
+msgid "Turkish"
+msgstr "Türk"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Uyghur"
+msgstr "Uyğur"
+
+msgid "Ukrainian"
+msgstr "Ukrayn"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Özbək"
+
+msgid "Vietnamese"
+msgstr "Vyetnam"
+
+msgid "Simplified Chinese"
+msgstr "Sadələşdirilmiş Çin dili"
+
+msgid "Traditional Chinese"
+msgstr "Ənənəvi Çin dili"
+
+msgid "Messages"
+msgstr "Mesajlar"
+
+msgid "Site Maps"
+msgstr "Sayt Xəritələri"
+
+msgid "Static Files"
+msgstr "Statik Fayllar"
+
+msgid "Syndication"
+msgstr "Sindikasiya"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Səhifə nömrəsi rəqəm deyil"
+
+msgid "That page number is less than 1"
+msgstr "Səhifə nömrəsi 1-dən balacadır"
+
+msgid "That page contains no results"
+msgstr "O səhifədə nəticə yoxdur"
+
+msgid "Enter a valid value."
+msgstr "Düzgün dəyər daxil edin."
+
+msgid "Enter a valid domain name."
+msgstr "Düzgün domen adı daxil edin."
+
+msgid "Enter a valid URL."
+msgstr "Düzgün URL daxil edin."
+
+msgid "Enter a valid integer."
+msgstr "Düzgün rəqəm daxil edin."
+
+msgid "Enter a valid email address."
+msgstr "Düzgün e-poçt ünvanı daxil edin."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Hərflərdən, rəqəmlərdən, alt-xətlərdən və ya defislərdən ibarət düzgün "
+"qısaltma (“slug”) daxil edin."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Unicode hərflərdən, rəqəmlərdən, alt-xətlərdən və ya defislərdən ibarət "
+"düzgün qısaltma (“slug”) daxil edin."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Düzgün %(protocol)s adres daxil edin."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 və ya IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Vergüllə ayırmaqla yalnız rəqəmlər daxil edin."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Əmin olun ki, bu dəyər %(limit_value)s-dir/dır (bu %(show_value)s-dir/dır)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Bu qiymətin %(limit_value)s-(y)a/ə bərabər və ya ondan kiçik olduğunu "
+"yoxlayın."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Bu qiymətin %(limit_value)s-(y)a/ə bərabər və ya ondan böyük olduğunu "
+"yoxlayın."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Bu dəyərin %(limit_value)s addım ölçüsünün mərtəbələri olduğundan əmin olun."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Bu dəyərin %(offset)s dəyərindən başlayaraq %(limit_value)s addım ölçüsü "
+"mərtəbəsi olduğundan əmin olun. Məs: %(offset)s, %(valid_value1)s, "
+"%(valid_value2)s və s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Bu dəyərin ən az %(limit_value)d simvol olduğuna əmin olun (%(show_value)d "
+"simvol var)"
+msgstr[1] ""
+"Bu dəyərin ən az %(limit_value)d simvol olduğuna əmin olun (%(show_value)d "
+"simvol var)"
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Bu dəyərin ən çox %(limit_value)d simvol olduğuna əmin olun (%(show_value)d "
+"simvol var)"
+msgstr[1] ""
+"Bu dəyərin ən çox %(limit_value)d simvol olduğuna əmin olun (%(show_value)d "
+"simvol var)"
+
+msgid "Enter a number."
+msgstr "Ədəd daxil edin."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Toplamda %(max)s rəqəmdən çox olmadığına əmin olun."
+msgstr[1] "Toplamda %(max)s rəqəmdən çox olmadığına əmin olun."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Onluq hissənin %(max)s rəqəmdən çox olmadığına əmin olun."
+msgstr[1] "Onluq hissənin %(max)s rəqəmdən çox olmadığına əmin olun."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Onluq hissədən əvvəl %(max)s rəqəmdən çox olmadığına əmin olun."
+msgstr[1] "Onluq hissədən əvvəl %(max)s rəqəmdən çox olmadığına əmin olun."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"“%(extension)s” fayl uzantısına icazə verilmir. İcazə verilən fayl "
+"uzantıları: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Null simvollara icazə verilmir."
+
+msgid "and"
+msgstr "və"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(field_labels)s ilə %(model_name)s artıq mövcuddur."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "“%(name)s” məhdudiyyəti pozuldu."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "%(value)r dəyəri doğru seçim deyil."
+
+msgid "This field cannot be null."
+msgstr "Bu sahə boş qala bilməz."
+
+msgid "This field cannot be blank."
+msgstr "Bu sahə ağ qala bilməz."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Bu %(field_label)s ilə %(model_name)s artıq mövcuddur."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s dəyəri %(date_field_label)s %(lookup_type)s üçün unikal "
+"olmalıdır."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Sahənin tipi: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s” dəyəri ya True, ya da False olmalıdır."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "“%(value)s” dəyəri True, False və ya None olmalıdır."
+
+msgid "Boolean (Either True or False)"
+msgstr "Bul (ya Doğru, ya Yalan)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Sətir (%(max_length)s simvola kimi)"
+
+msgid "String (unlimited)"
+msgstr "Sətir (limitsiz)"
+
+msgid "Comma-separated integers"
+msgstr "Vergüllə ayrılmış tam ədədlər"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s” dəyəri səhv tarix formatındadır. YYYY-MM-DD formatı olmalıdır."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s” dəyəri düzgün formatdadır (YYYY-MM-DD), amma bu tarix xətalıdır."
+
+msgid "Date (without time)"
+msgstr "Tarix (saatsız)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"“%(value)s” dəyərinin formatı səhvdir. Formatı YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ] olmalıdır."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"“%(value)s” dəyərinin formatı düzgündür (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) "
+"amma bu tarix xətalıdır."
+
+msgid "Date (with time)"
+msgstr "Tarix (vaxt ilə)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s” dəyəri onluq kəsrli (decimal) rəqəm olmalıdır."
+
+msgid "Decimal number"
+msgstr "Rasional ədəd"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"“%(value)s” dəyərinin formatı səhvdir. Formatı [DD] [HH:[MM:]]ss[.uuuuuu] "
+"olmalıdır."
+
+msgid "Duration"
+msgstr "Müddət"
+
+msgid "Email address"
+msgstr "E-poçt"
+
+msgid "File path"
+msgstr "Faylın ünvanı"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s” dəyəri float olmalıdır."
+
+msgid "Floating point number"
+msgstr "Sürüşən vergüllü ədəd"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "“%(value)s” dəyəri tam rəqəm olmalıdır."
+
+msgid "Integer"
+msgstr "Tam ədəd"
+
+msgid "Big (8 byte) integer"
+msgstr "Böyük (8 bayt) tam ədəd"
+
+msgid "Small integer"
+msgstr "Kiçik tam ədəd"
+
+msgid "IPv4 address"
+msgstr "IPv4 ünvanı"
+
+msgid "IP address"
+msgstr "IP ünvan"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s” dəyəri None, True və ya False olmalıdır."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Bul (Ya True, ya False, ya da None)"
+
+msgid "Positive big integer"
+msgstr "Müsbət böyük rəqəm"
+
+msgid "Positive integer"
+msgstr "Müsbət tam ədəd"
+
+msgid "Positive small integer"
+msgstr "Müsbət tam kiçik ədəd"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Əzmə (%(max_length)s simvola kimi)"
+
+msgid "Text"
+msgstr "Mətn"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s” dəyərinin formatı səhvdir. Formatı HH:MM[:ss[.uuuuuu]] olmalıdır."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s” dəyəri düzgün formatdadır (HH:MM[:ss[.uuuuuu]]), amma vaxtı "
+"xətalıdır."
+
+msgid "Time"
+msgstr "Vaxt"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Düz ikili (binary) məlumat"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” keçərli UUID deyil."
+
+msgid "Universally unique identifier"
+msgstr "Universal təkrarolunmaz identifikator"
+
+msgid "File"
+msgstr "Fayl"
+
+msgid "Image"
+msgstr "Şəkil"
+
+msgid "A JSON object"
+msgstr "JSON obyekti"
+
+msgid "Value must be valid JSON."
+msgstr "Dəyər düzgün JSON olmalıdır."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "%(field)s %(value)r ilə %(model)s dəyəri düzgün seçim deyil."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Xarici açar (bağlı olduğu sahəyə uyğun tipi alır)"
+
+msgid "One-to-one relationship"
+msgstr "Birin-birə münasibət"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s əlaqəsi"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s əlaqələri"
+
+msgid "Many-to-many relationship"
+msgstr "Çoxun-çoxa münasibət"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Bu sahə vacibdir."
+
+msgid "Enter a whole number."
+msgstr "Tam ədəd daxil edin."
+
+msgid "Enter a valid date."
+msgstr "Düzgün tarix daxil edin."
+
+msgid "Enter a valid time."
+msgstr "Düzgün vaxt daxil edin."
+
+msgid "Enter a valid date/time."
+msgstr "Düzgün tarix/vaxt daxil edin."
+
+msgid "Enter a valid duration."
+msgstr "Keçərli müddət daxil edin."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Günlərin sayı {min_days} ilə {max_days} arasında olmalıdır."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Fayl göndərilməyib. Vərəqənin (\"form\") şifrələmə tipini yoxlayın."
+
+msgid "No file was submitted."
+msgstr "Fayl göndərilməyib."
+
+msgid "The submitted file is empty."
+msgstr "Göndərilən fayl boşdur."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Bu fayl adının ən çox %(max)d simvol olduğuna əmin olun (%(length)d var)."
+msgstr[1] ""
+"Bu fayl adının ən çox %(max)d simvol olduğuna əmin olun (%(length)d var)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Ya fayl göndərin, ya da xanaya quş qoymayın, hər ikisini də birdən etməyin."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Düzgün şəkil göndərin. Göndərdiyiniz fayl ya şəkil deyil, ya da şəkildə "
+"problem var."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Düzgün seçim edin. %(value)s seçimlər arasında yoxdur."
+
+msgid "Enter a list of values."
+msgstr "Qiymətlərin siyahısını daxil edin."
+
+msgid "Enter a complete value."
+msgstr "Tam dəyər daxil edin."
+
+msgid "Enter a valid UUID."
+msgstr "Keçərli UUID daxil et."
+
+msgid "Enter a valid JSON."
+msgstr "Etibarlı bir JSON daxil edin."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Gizli %(name)s sahəsi) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"ManagementForm datası ya əskikdir, ya da dəyişdirilib. Çatışmayan xanalar: "
+"%(field_names)s. Problem davam edərsə, səhv hesabatı təqdim etməli ola "
+"bilərsiniz."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin."
+msgstr[1] "Zəhmət olmasa ən çox %(num)d forma təsdiqləyin."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Zəhmət olmasa ən az %(num)d forma təsdiqləyin."
+msgstr[1] "Zəhmət olmasa azı %(num)d forma təsdiqləyin."
+
+msgid "Order"
+msgstr "Sırala"
+
+msgid "Delete"
+msgstr "Sil"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "%(field)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"%(field)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin, onların hamısı "
+"fərqli olmalıdır."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"%(field_name)s sahəsinə görə təkrarlanan məlumatlara düzəliş edin, onlar "
+"%(date_field)s %(lookup)s-a görə fərqli olmalıdır."
+
+msgid "Please correct the duplicate values below."
+msgstr "Aşağıda təkrarlanan qiymətlərə düzəliş edin."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Sətiriçi dəyər ana nüsxəyə uyğun deyil."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Düzgün seçim edin. Bu seçim mümkün deyil."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” düzgün dəyər deyil."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s vaxtı %(current_timezone)s zaman qurşağında ifadə oluna bilmir; "
+"ya qeyri-müəyyənlik, ya da mövcud olmaya bilər."
+
+msgid "Clear"
+msgstr "Təmizlə"
+
+msgid "Currently"
+msgstr "Hal-hazırda"
+
+msgid "Change"
+msgstr "Dəyiş"
+
+msgid "Unknown"
+msgstr "Məlum deyil"
+
+msgid "Yes"
+msgstr "Hə"
+
+msgid "No"
+msgstr "Yox"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "hə,yox,bəlkə"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bayt"
+msgstr[1] "%(size)d bayt"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s QB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "g.s."
+
+msgid "a.m."
+msgstr "g.ə."
+
+msgid "PM"
+msgstr "GS"
+
+msgid "AM"
+msgstr "GƏ"
+
+msgid "midnight"
+msgstr "gecə yarısı"
+
+msgid "noon"
+msgstr "günorta"
+
+msgid "Monday"
+msgstr "Bazar ertəsi"
+
+msgid "Tuesday"
+msgstr "Çərşənbə axşamı"
+
+msgid "Wednesday"
+msgstr "Çərşənbə"
+
+msgid "Thursday"
+msgstr "Cümə axşamı"
+
+msgid "Friday"
+msgstr "Cümə"
+
+msgid "Saturday"
+msgstr "Şənbə"
+
+msgid "Sunday"
+msgstr "Bazar"
+
+msgid "Mon"
+msgstr "B.e"
+
+msgid "Tue"
+msgstr "Ç.a"
+
+msgid "Wed"
+msgstr "Çrş"
+
+msgid "Thu"
+msgstr "C.a"
+
+msgid "Fri"
+msgstr "Cüm"
+
+msgid "Sat"
+msgstr "Şnb"
+
+msgid "Sun"
+msgstr "Bzr"
+
+msgid "January"
+msgstr "Yanvar"
+
+msgid "February"
+msgstr "Fevral"
+
+msgid "March"
+msgstr "Mart"
+
+msgid "April"
+msgstr "Aprel"
+
+msgid "May"
+msgstr "May"
+
+msgid "June"
+msgstr "İyun"
+
+msgid "July"
+msgstr "İyul"
+
+msgid "August"
+msgstr "Avqust"
+
+msgid "September"
+msgstr "Sentyabr"
+
+msgid "October"
+msgstr "Oktyabr"
+
+msgid "November"
+msgstr "Noyabr"
+
+msgid "December"
+msgstr "Dekabr"
+
+msgid "jan"
+msgstr "ynv"
+
+msgid "feb"
+msgstr "fvr"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "iyn"
+
+msgid "jul"
+msgstr "iyl"
+
+msgid "aug"
+msgstr "avq"
+
+msgid "sep"
+msgstr "snt"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "noy"
+
+msgid "dec"
+msgstr "dek"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Yan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Fev."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Mart"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Aprel"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "İyun"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "İyul"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Avq."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sen."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Noy."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dek."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Yanvar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Fevral"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Mart"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Aprel"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "İyun"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "İyul"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Avqust"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Sentyabr"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Oktyabr"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Noyabr"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Dekabr"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Bu doğru IPv6 ünvanı deyil."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "və ya"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d il"
+msgstr[1] "%(num)d il"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d ay"
+msgstr[1] "%(num)d ay"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d həftə"
+msgstr[1] "%(num)d həftə"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d gün"
+msgstr[1] "%(num)d gün"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d saat"
+msgstr[1] "%(num)d saat"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d dəqiqə"
+msgstr[1] "%(num)d dəqiqə"
+
+msgid "Forbidden"
+msgstr "Qadağan olunmuş"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF təsdiqləmə alınmadı. Sorğu ləğv edildi."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Bu mesajı ona görə görürsünüz ki, bu HTTPS saytı sizin səyyah tərəfindən "
+"“Referer header”in göndərilməsini tələb etdiyi halda heç nə "
+"göndərilməmişdir. Bu başlıq sizin veb-səyyahınızın kənar şəxlər tərəfindən "
+"ələ keçirilmədiyindən əmin olmaq üçün tələb olunur."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Əgər səyyahınızın “Referer” başlığını göndərməsini söndürmüsünüzsə, lütfən "
+"bu sayt üçün, HTTPS əlaqələr üçün və ya “same-origin” sorğular üçün aktiv "
+"edin."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Əgər etiketini və ya "
+"“Referrer-Policy: no-referrer” başlığını işlədirsinizsə, lütfən silin. CSRF "
+"qoruma dəqiq yönləndirən yoxlaması üçün “Referer” başlığını tələb edir. Əgər "
+"məxfilik üçün düşünürsünüzsə, üçüncü tərəf sayt keçidləri üçün kimi bir alternativ işlədin."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Bu sayt formaları göndərmək üçün CSRF çərəzini işlədir. Bu çərəz "
+"səyyahınızın üçüncü biri tərəfindən hack-lənmədiyinə əmin olmaq üçün "
+"istifadə edilir. "
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Əgər səyyahınızda çərəzlər söndürülübsə, lütfən bu sayt və ya “same-origin” "
+"sorğular üçün aktiv edin."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Əlavə məlumatı DEBUG=True ilə əldə etmək olar."
+
+msgid "No year specified"
+msgstr "İl göstərilməyib"
+
+msgid "Date out of range"
+msgstr "Tarix aralığın xaricindədir"
+
+msgid "No month specified"
+msgstr "Ay göstərilməyib"
+
+msgid "No day specified"
+msgstr "Gün göstərilməyib"
+
+msgid "No week specified"
+msgstr "Həftə göstərilməyib"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "%(verbose_name_plural)s seçmək mümkün deyil"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Gələcək %(verbose_name_plural)s seçmək mümkün deyil, çünki %(class_name)s."
+"allow_future Yalan kimi qeyd olunub."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "“%(format)s” formatına görə “%(datestr)s” tarixi düzgün deyil"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Sorğuya uyğun %(verbose_name)s tapılmadı"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Səhifə həm “axırıncı” deyil, həm də tam ədədə çevrilə bilmir."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Yanlış səhifə (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Siyahı boşdur və “%(class_name)s.allow_empty” dəyəri False-dur."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Ünvan indekslərinə icazə verilmir."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” mövcud deyil"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "%(directory)s-nin indeksi"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Quruluş uğurla tamamlandı! Təbriklər!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Django %(version)s üçün buraxılış "
+"qeydlərinə baxın"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Tənzimləmə faylınızda DEBUG=True və heç bir URL qurmadığınız üçün bu səhifəni "
+"görürsünüz."
+
+msgid "Django Documentation"
+msgstr "Django Dokumentasiya"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Mövzular, istinadlar və nümunələr"
+
+msgid "Tutorial: A Polling App"
+msgstr "Məşğələ: Səsvermə Tətbiqi"
+
+msgid "Get started with Django"
+msgstr "Django ilə başla"
+
+msgid "Django Community"
+msgstr "Django İcması"
+
+msgid "Connect, get help, or contribute"
+msgstr "Qoşul, kömək al və dəstək ol"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..42a4f080
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..3175f718
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/formats.py
new file mode 100644
index 00000000..253b6ddd
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/az/formats.py
@@ -0,0 +1,30 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j E Y"
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = "j E Y, G:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+ "%d.%m.%y", # '25.10.06'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+ "%d.%m.%y %H:%M:%S", # '25.10.06 14:30:59'
+ "%d.%m.%y %H:%M:%S.%f", # '25.10.06 14:30:59.000200'
+ "%d.%m.%y %H:%M", # '25.10.06 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..cda27d35
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.po
new file mode 100644
index 00000000..44057dcf
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/be/LC_MESSAGES/django.po
@@ -0,0 +1,1392 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Viktar Palstsiuk , 2014-2015
+# znotdead , 2016-2017,2019-2021,2023-2025
+# Bobsans , 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: znotdead , "
+"2016-2017,2019-2021,2023-2025\n"
+"Language-Team: Belarusian (http://app.transifex.com/django/django/language/"
+"be/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: be\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+msgid "Afrikaans"
+msgstr "Афрыкаанс"
+
+msgid "Arabic"
+msgstr "Арабская"
+
+msgid "Algerian Arabic"
+msgstr "Алжырская арабская"
+
+msgid "Asturian"
+msgstr "Астурыйская"
+
+msgid "Azerbaijani"
+msgstr "Азэрбайджанская"
+
+msgid "Bulgarian"
+msgstr "Баўгарская"
+
+msgid "Belarusian"
+msgstr "Беларуская"
+
+msgid "Bengali"
+msgstr "Бэнґальская"
+
+msgid "Breton"
+msgstr "Брэтонская"
+
+msgid "Bosnian"
+msgstr "Басьнійская"
+
+msgid "Catalan"
+msgstr "Каталёнская"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Цэнтральнакурдская (сарані)"
+
+msgid "Czech"
+msgstr "Чэская"
+
+msgid "Welsh"
+msgstr "Валійская"
+
+msgid "Danish"
+msgstr "Дацкая"
+
+msgid "German"
+msgstr "Нямецкая"
+
+msgid "Lower Sorbian"
+msgstr "Ніжнелужыцкая"
+
+msgid "Greek"
+msgstr "Грэцкая"
+
+msgid "English"
+msgstr "Анґельская"
+
+msgid "Australian English"
+msgstr "Анґельская (Аўстралія)"
+
+msgid "British English"
+msgstr "Анґельская (Брытанская)"
+
+msgid "Esperanto"
+msgstr "Эспэранта"
+
+msgid "Spanish"
+msgstr "Гішпанская"
+
+msgid "Argentinian Spanish"
+msgstr "Гішпанская (Арґентына)"
+
+msgid "Colombian Spanish"
+msgstr "Гішпанская (Калумбія)"
+
+msgid "Mexican Spanish"
+msgstr "Гішпанская (Мэксыка)"
+
+msgid "Nicaraguan Spanish"
+msgstr "Гішпанская (Нікараґуа)"
+
+msgid "Venezuelan Spanish"
+msgstr "Іспанская (Вэнэсуэла)"
+
+msgid "Estonian"
+msgstr "Эстонская"
+
+msgid "Basque"
+msgstr "Басконская"
+
+msgid "Persian"
+msgstr "Фарсі"
+
+msgid "Finnish"
+msgstr "Фінская"
+
+msgid "French"
+msgstr "Француская"
+
+msgid "Frisian"
+msgstr "Фрызкая"
+
+msgid "Irish"
+msgstr "Ірляндзкая"
+
+msgid "Scottish Gaelic"
+msgstr "Гэльская шатляндзкая"
+
+msgid "Galician"
+msgstr "Ґальская"
+
+msgid "Hebrew"
+msgstr "Габрэйская"
+
+msgid "Hindi"
+msgstr "Гінды"
+
+msgid "Croatian"
+msgstr "Харвацкая"
+
+msgid "Upper Sorbian"
+msgstr "Верхнелужыцкая"
+
+msgid "Hungarian"
+msgstr "Вугорская"
+
+msgid "Armenian"
+msgstr "Армянскі"
+
+msgid "Interlingua"
+msgstr "Інтэрлінгва"
+
+msgid "Indonesian"
+msgstr "Інданэзійская"
+
+msgid "Igbo"
+msgstr "Ігба"
+
+msgid "Ido"
+msgstr "Іда"
+
+msgid "Icelandic"
+msgstr "Ісьляндзкая"
+
+msgid "Italian"
+msgstr "Італьянская"
+
+msgid "Japanese"
+msgstr "Японская"
+
+msgid "Georgian"
+msgstr "Грузінская"
+
+msgid "Kabyle"
+msgstr "Кабільскі"
+
+msgid "Kazakh"
+msgstr "Казаская"
+
+msgid "Khmer"
+msgstr "Кхмерская"
+
+msgid "Kannada"
+msgstr "Каннада"
+
+msgid "Korean"
+msgstr "Карэйская"
+
+msgid "Kyrgyz"
+msgstr "Кіргізская"
+
+msgid "Luxembourgish"
+msgstr "Люксэмбургская"
+
+msgid "Lithuanian"
+msgstr "Літоўская"
+
+msgid "Latvian"
+msgstr "Латыская"
+
+msgid "Macedonian"
+msgstr "Македонская"
+
+msgid "Malayalam"
+msgstr "Малаялам"
+
+msgid "Mongolian"
+msgstr "Манґольская"
+
+msgid "Marathi"
+msgstr "Маратхі"
+
+msgid "Malay"
+msgstr "Малайская"
+
+msgid "Burmese"
+msgstr "Бірманская"
+
+msgid "Norwegian Bokmål"
+msgstr "Нарвэская букмал"
+
+msgid "Nepali"
+msgstr "Нэпальская"
+
+msgid "Dutch"
+msgstr "Галяндзкая"
+
+msgid "Norwegian Nynorsk"
+msgstr "Нарвэская нюнорск"
+
+msgid "Ossetic"
+msgstr "Асяцінская"
+
+msgid "Punjabi"
+msgstr "Панджабі"
+
+msgid "Polish"
+msgstr "Польская"
+
+msgid "Portuguese"
+msgstr "Партуґальская"
+
+msgid "Brazilian Portuguese"
+msgstr "Партуґальская (Бразылія)"
+
+msgid "Romanian"
+msgstr "Румынская"
+
+msgid "Russian"
+msgstr "Расейская"
+
+msgid "Slovak"
+msgstr "Славацкая"
+
+msgid "Slovenian"
+msgstr "Славенская"
+
+msgid "Albanian"
+msgstr "Альбанская"
+
+msgid "Serbian"
+msgstr "Сэрбская"
+
+msgid "Serbian Latin"
+msgstr "Сэрбская (лацінка)"
+
+msgid "Swedish"
+msgstr "Швэдзкая"
+
+msgid "Swahili"
+msgstr "Суахілі"
+
+msgid "Tamil"
+msgstr "Тамільская"
+
+msgid "Telugu"
+msgstr "Тэлуґу"
+
+msgid "Tajik"
+msgstr "Таджыкскі"
+
+msgid "Thai"
+msgstr "Тайская"
+
+msgid "Turkmen"
+msgstr "Туркменская"
+
+msgid "Turkish"
+msgstr "Турэцкая"
+
+msgid "Tatar"
+msgstr "Татарская"
+
+msgid "Udmurt"
+msgstr "Удмурцкая"
+
+msgid "Uyghur"
+msgstr "Уйгурскі"
+
+msgid "Ukrainian"
+msgstr "Украінская"
+
+msgid "Urdu"
+msgstr "Урду"
+
+msgid "Uzbek"
+msgstr "Узбецкі"
+
+msgid "Vietnamese"
+msgstr "Віетнамская"
+
+msgid "Simplified Chinese"
+msgstr "Кітайская (спрошчаная)"
+
+msgid "Traditional Chinese"
+msgstr "Кітайская (звычайная)"
+
+msgid "Messages"
+msgstr "Паведамленні"
+
+msgid "Site Maps"
+msgstr "Мапы сайту"
+
+msgid "Static Files"
+msgstr "Cтатычныя файлы"
+
+msgid "Syndication"
+msgstr "Сындыкацыя"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Лік гэтай старонкі не з'яўляецца цэлым лікам"
+
+msgid "That page number is less than 1"
+msgstr "Лік старонкі менш чым 1"
+
+msgid "That page contains no results"
+msgstr "Гэтая старонка не мае ніякіх вынікаў"
+
+msgid "Enter a valid value."
+msgstr "Пазначце правільнае значэньне."
+
+msgid "Enter a valid domain name."
+msgstr "Пазначце сапраўднае даменнае имя."
+
+msgid "Enter a valid URL."
+msgstr "Пазначце чынную спасылку."
+
+msgid "Enter a valid integer."
+msgstr "Увядзіце цэлы лік."
+
+msgid "Enter a valid email address."
+msgstr "Увядзіце сапраўдны адрас электроннай пошты."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Значэнне павінна быць толькі з літараў, личбаў, знакаў падкрэслівання ці "
+"злучкі."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Значэнне павінна быць толькі з літараў стандарту Unicode, личбаў, знакаў "
+"падкрэслівання ці злучкі."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Пазначце сапраўдны %(protocol)s адрас."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 або IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Набярыце лічбы, падзеленыя коскамі."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Упэўніцеся, што гэтае значэньне — %(limit_value)s (зараз яно — "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Значэньне мусіць быць меншым або роўным %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Значэньне мусіць быць большым або роўным %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Пераканайцеся, што гэта значэнне кратнае памеру кроку %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Пераканайцеся, што гэта значэнне кратнае памеру кроку %(limit_value)s, "
+"пачынаючы з %(offset)s, напрыклад. %(offset)s, %(valid_value1)s, "
+"%(valid_value2)s, і гэтак далей."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвал (зараз "
+"%(show_value)d)."
+msgstr[1] ""
+"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвала (зараз "
+"%(show_value)d)."
+msgstr[2] ""
+"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвалаў (зараз "
+"%(show_value)d)."
+msgstr[3] ""
+"Упэўніцеся, што гэтае значэнне мае не менш %(limit_value)d сімвалаў (зараз "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвал (зараз "
+"%(show_value)d)."
+msgstr[1] ""
+"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвала (зараз "
+"%(show_value)d)."
+msgstr[2] ""
+"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвалаў (зараз "
+"%(show_value)d)."
+msgstr[3] ""
+"Упэўніцеся, што гэтае значэнне мае не болей %(limit_value)d сімвалаў (зараз "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Набярыце лік."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу."
+msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы."
+msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў."
+msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу пасьля коскі."
+msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы пасьля коскі."
+msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў пасьля коскі."
+msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў пасьля коскі."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Упэўніцеся, што набралі ня болей за %(max)s лічбу да коскі."
+msgstr[1] "Упэўніцеся, што набралі ня болей за %(max)s лічбы да коскі."
+msgstr[2] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў да коскі."
+msgstr[3] "Упэўніцеся, што набралі ня болей за %(max)s лічбаў да коскі."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Пашырэнне файла “%(extension)s” не дапускаецца. Дапушчальныя пашырэння: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Null сімвалы не дапускаюцца."
+
+msgid "and"
+msgstr "і"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s з такім %(field_labels)s ужо існуе."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Абмежаванне \"%(name)s\" парушана."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Значэнне %(value)r не з'яўляецца правільным выбарам."
+
+msgid "This field cannot be null."
+msgstr "Поле ня можа мець значэньне «null»."
+
+msgid "This field cannot be blank."
+msgstr "Трэба запоўніць поле."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s з такім %(field_label)s ужо існуе."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s павінна быць унікальна для %(date_field_label)s "
+"%(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Палі віду: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Значэньне “%(value)s” павінна быць True альбо False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Значэньне “%(value)s” павінна быць True, False альбо None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Ляґічнае («сапраўдна» або «не сапраўдна»)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Радок (ня болей за %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Радок (неабмежаваны)"
+
+msgid "Comma-separated integers"
+msgstr "Цэлыя лікі, падзеленыя коскаю"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Значэнне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГГГ-"
+"ММ-ДД."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Значэнне “%(value)s” мае правільны фармат(ГГГГ-ММ-ДД) але гэта несапраўдная "
+"дата."
+
+msgid "Date (without time)"
+msgstr "Дата (бяз часу)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Значэнне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГГГ-"
+"ММ-ДД ГГ:ХХ[:сс[.мммммм]][ЧА], дзе ЧА — часавы абсяг."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Значэнне “%(value)s” мае правільны фармат (ГГГГ-ММ-ДД ГГ:ХХ[:сс[.мммммм]]"
+"[ЧА], дзе ЧА — часавы абсяг) але гэта несапраўдныя дата/час."
+
+msgid "Date (with time)"
+msgstr "Дата (разам з часам)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Значэньне “%(value)s” павінна быць дзесятковым лікам."
+
+msgid "Decimal number"
+msgstr "Дзесятковы лік"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Значэньне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце "
+"[ДД] [ГГ:[ХХ:]]сс[.мммммм]."
+
+msgid "Duration"
+msgstr "Працягласць"
+
+msgid "Email address"
+msgstr "Адрас эл. пошты"
+
+msgid "File path"
+msgstr "Шлях да файла"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Значэньне “%(value)s” павінна быць дробным лікам."
+
+msgid "Floating point number"
+msgstr "Лік зь пераноснай коскаю"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Значэньне “%(value)s” павінна быць цэлым лікам."
+
+msgid "Integer"
+msgstr "Цэлы лік"
+
+msgid "Big (8 byte) integer"
+msgstr "Вялікі (8 байтаў) цэлы"
+
+msgid "Small integer"
+msgstr "Малы цэлы лік"
+
+msgid "IPv4 address"
+msgstr "Адрас IPv4"
+
+msgid "IP address"
+msgstr "Адрас IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Значэньне “%(value)s” павінна быць None, True альбо False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Ляґічнае («сапраўдна», «не сапраўдна» ці «нічога»)"
+
+msgid "Positive big integer"
+msgstr "Дадатны вялікі цэлы лік"
+
+msgid "Positive integer"
+msgstr "Дадатны цэлы лік"
+
+msgid "Positive small integer"
+msgstr "Дадатны малы цэлы лік"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Бірка (ня болей за %(max_length)s)"
+
+msgid "Text"
+msgstr "Тэкст"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Значэньне “%(value)s” мае няправільны фармат. Яно павінна быць у фармаце ГГ:"
+"ХХ[:сс[.мммммм]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Значэнне “%(value)s” мае правільны фармат (ГГ:ХХ[:сс[.мммммм]]) але гэта "
+"несапраўдны час."
+
+msgid "Time"
+msgstr "Час"
+
+msgid "URL"
+msgstr "Сеціўная спасылка"
+
+msgid "Raw binary data"
+msgstr "Неапрацаваныя бінарныя зьвесткі"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” не з'яўляецца дапушчальным UUID."
+
+msgid "Universally unique identifier"
+msgstr "Універсальны непаўторны ідэнтыфікатар"
+
+msgid "File"
+msgstr "Файл"
+
+msgid "Image"
+msgstr "Выява"
+
+msgid "A JSON object"
+msgstr "Аб'ект JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Значэньне павінна быць сапраўдным JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+"Экземпляр %(model)s з %(field)s %(value)r не з'яўляецца правільным выбарам."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Вонкавы ключ (від вызначаецца паводле зьвязанага поля)"
+
+msgid "One-to-one relationship"
+msgstr "Сувязь «адзін да аднаго»"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Сувязь %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Сувязi %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Сувязь «некалькі да некалькіх»"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Поле трэба запоўніць."
+
+msgid "Enter a whole number."
+msgstr "Набярыце ўвесь лік."
+
+msgid "Enter a valid date."
+msgstr "Пазначце чынную дату."
+
+msgid "Enter a valid time."
+msgstr "Пазначце чынны час."
+
+msgid "Enter a valid date/time."
+msgstr "Пазначце чынныя час і дату."
+
+msgid "Enter a valid duration."
+msgstr "Увядзіце сапраўдны тэрмін."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Колькасць дзён павінна быць паміж {min_days} i {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Файл не даслалі. Зірніце кадоўку блянку."
+
+msgid "No file was submitted."
+msgstr "Файл не даслалі."
+
+msgid "The submitted file is empty."
+msgstr "Дасланы файл — парожні."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвал (зараз "
+"%(length)d)."
+msgstr[1] ""
+"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвала (зараз "
+"%(length)d)."
+msgstr[2] ""
+"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвалаў (зараз "
+"%(length)d)."
+msgstr[3] ""
+"Упэўніцеся, што гэтае імя файлу мае не болей %(max)d сімвалаў (зараз "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Трэба або даслаць файл, або абраць «Ачысьціць», але нельга рабіць гэта "
+"адначасова."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Запампаваць чынны малюнак. Запампавалі або не выяву, або пашкоджаную выяву."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Абярыце дазволенае. %(value)s няма ў даступных значэньнях."
+
+msgid "Enter a list of values."
+msgstr "Упішыце сьпіс значэньняў."
+
+msgid "Enter a complete value."
+msgstr "Калі ласка, увядзіце поўнае значэньне."
+
+msgid "Enter a valid UUID."
+msgstr "Увядзіце сапраўдны UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Пазначце сапраўдны JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Схаванае поле %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Дадзеныя формы ManagementForm адсутнічаюць ці былі падменены. Адсутнічаюць "
+"палі: %(field_names)s. Магчыма, вам спатрэбіцца падаць справаздачу пра "
+"памылку, калі праблема захоўваецца."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Калі ласка, адпраўце не болей чым %(num)d формаў."
+msgstr[1] "Калі ласка, адпраўце не болей чым %(num)d формаў."
+msgstr[2] "Калі ласка, адпраўце не болей чым %(num)d формаў."
+msgstr[3] "Калі ласка, адпраўце не болей чым %(num)d формаў."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Калі ласка, адпраўце не менш чым %(num)d формаў."
+msgstr[1] "Калі ласка, адпраўце не менш чым %(num)d формаў."
+msgstr[2] "Калі ласка, адпраўце не менш чым %(num)d формаў."
+msgstr[3] "Калі ласка, адпраўце не менш чым %(num)d формаў."
+
+msgid "Order"
+msgstr "Парадак"
+
+msgid "Delete"
+msgstr "Выдаліць"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "У полі «%(field)s» выпраўце зьвесткі, якія паўтараюцца."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Выпраўце зьвесткі ў полі «%(field)s»: нельга, каб яны паўтараліся."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Выпраўце зьвесткі ў полі «%(field_name)s»: нельга каб зьвесткі ў "
+"«%(date_field)s» для «%(lookup)s» паўтараліся."
+
+msgid "Please correct the duplicate values below."
+msgstr "Выпраўце зьвесткі, якія паўтараюцца (гл. ніжэй)."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Убудаванае значэнне не супадае з бацькоўскім значэннем."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Абярыце дазволенае. Абранага няма ў даступных значэньнях."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” не сапраўднае значэнне."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"У часавым абсягу %(current_timezone)s нельга зразумець дату %(datetime)s: "
+"яна можа быць неадназначнаю або яе можа не існаваць."
+
+msgid "Clear"
+msgstr "Ачысьціць"
+
+msgid "Currently"
+msgstr "Зараз"
+
+msgid "Change"
+msgstr "Зьмяніць"
+
+msgid "Unknown"
+msgstr "Невядома"
+
+msgid "Yes"
+msgstr "Так"
+
+msgid "No"
+msgstr "Не"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "так,не,магчыма"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d байт"
+msgstr[1] "%(size)d байты"
+msgstr[2] "%(size)d байтаў"
+msgstr[3] "%(size)d байтаў"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s КБ"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s МБ"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s ҐБ"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s ТБ"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s ПБ"
+
+msgid "p.m."
+msgstr "папаўдні"
+
+msgid "a.m."
+msgstr "папоўначы"
+
+msgid "PM"
+msgstr "папаўдні"
+
+msgid "AM"
+msgstr "папоўначы"
+
+msgid "midnight"
+msgstr "поўнач"
+
+msgid "noon"
+msgstr "поўдзень"
+
+msgid "Monday"
+msgstr "Панядзелак"
+
+msgid "Tuesday"
+msgstr "Аўторак"
+
+msgid "Wednesday"
+msgstr "Серада"
+
+msgid "Thursday"
+msgstr "Чацьвер"
+
+msgid "Friday"
+msgstr "Пятніца"
+
+msgid "Saturday"
+msgstr "Субота"
+
+msgid "Sunday"
+msgstr "Нядзеля"
+
+msgid "Mon"
+msgstr "Пн"
+
+msgid "Tue"
+msgstr "Аў"
+
+msgid "Wed"
+msgstr "Ср"
+
+msgid "Thu"
+msgstr "Чц"
+
+msgid "Fri"
+msgstr "Пт"
+
+msgid "Sat"
+msgstr "Сб"
+
+msgid "Sun"
+msgstr "Нд"
+
+msgid "January"
+msgstr "студзеня"
+
+msgid "February"
+msgstr "лютага"
+
+msgid "March"
+msgstr "сакавік"
+
+msgid "April"
+msgstr "красавіка"
+
+msgid "May"
+msgstr "траўня"
+
+msgid "June"
+msgstr "чэрвеня"
+
+msgid "July"
+msgstr "ліпеня"
+
+msgid "August"
+msgstr "жніўня"
+
+msgid "September"
+msgstr "верасьня"
+
+msgid "October"
+msgstr "кастрычніка"
+
+msgid "November"
+msgstr "лістапада"
+
+msgid "December"
+msgstr "сьнежня"
+
+msgid "jan"
+msgstr "сту"
+
+msgid "feb"
+msgstr "лют"
+
+msgid "mar"
+msgstr "сак"
+
+msgid "apr"
+msgstr "кра"
+
+msgid "may"
+msgstr "тра"
+
+msgid "jun"
+msgstr "чэр"
+
+msgid "jul"
+msgstr "ліп"
+
+msgid "aug"
+msgstr "жні"
+
+msgid "sep"
+msgstr "вер"
+
+msgid "oct"
+msgstr "кас"
+
+msgid "nov"
+msgstr "ліс"
+
+msgid "dec"
+msgstr "сьн"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Сту."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Люты"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "сакавік"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "красавіка"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "траўня"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "чэрвеня"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "ліпеня"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Жні."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Вер."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Кас."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Ліс."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Сьн."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "студзеня"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "лютага"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "сакавік"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "красавіка"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "траўня"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "чэрвеня"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "ліпеня"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "жніўня"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "верасьня"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "кастрычніка"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "лістапада"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "сьнежня"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Гэта ня правільны адрас IPv6."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "або"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d год"
+msgstr[1] "%(num)d гадоў"
+msgstr[2] "%(num)d гадоў"
+msgstr[3] "%(num)d гадоў"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d месяц"
+msgstr[1] "%(num)d месяцаў"
+msgstr[2] "%(num)d месяцаў"
+msgstr[3] "%(num)d месяцаў"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d тыдзень"
+msgstr[1] "%(num)d тыдняў"
+msgstr[2] "%(num)d тыдняў"
+msgstr[3] "%(num)d тыдняў"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d дзень"
+msgstr[1] "%(num)d дзён"
+msgstr[2] "%(num)d дзён"
+msgstr[3] "%(num)d дзён"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d гадзіна"
+msgstr[1] "%(num)d гадзін"
+msgstr[2] "%(num)d гадзін"
+msgstr[3] "%(num)d гадзін"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d хвіліна"
+msgstr[1] "%(num)d хвілін"
+msgstr[2] "%(num)d хвілін"
+msgstr[3] "%(num)d хвілін"
+
+msgid "Forbidden"
+msgstr "Забаронена"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-праверка не атрымалася. Запыт спынены."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Вы бачыце гэта паведамленне, таму што гэты HTTPS-сайт патрабуе каб Referer "
+"загаловак быў адасланы вашым аглядальнікам, але гэтага не адбылося. Гэты "
+"загаловак неабходны для бяспекі, каб пераканацца, што ваш аглядальнік не "
+"ўзаламаны трэцімі асобамі."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Калі вы сканфігуравалі ваш браўзэр так, каб ён не працаваў з “Referer” "
+"загалоўкамі, калі ласка дазвольце іх хаця б для гэтага сайту, ці для HTTPS "
+"злучэнняў, ці для 'same-origin' запытаў."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Калі вы выкарыстоўваеце тэг "
+"ці дадалі загаловак “Referrer-Policy: no-referrer”, калі ласка выдаліце іх. "
+"CSRF абароне неабходны “Referer” загаловак для строгай праверкі. Калі Вы "
+"турбуецеся аб прыватнасці, выкарыстоўвайце альтэрнатывы, напрыклад , для спасылкі на сайты трэціх асоб."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Вы бачыце гэта паведамленне, таму што гэты сайт патрабуе CSRF кукі для "
+"адсылкі формы. Гэтыя кукі неабходныя для бяспекі, каб пераканацца, што ваш "
+"браўзэр не ўзламаны трэцімі асобамі."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Калі вы сканфігуравалі ваш браўзэр так, каб ён не працаваў з кукамі, калі "
+"ласка дазвольце іх хаця б для гэтага сайту ці для “same-origin” запытаў."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Больш падрабязная інфармацыя даступная з DEBUG=True."
+
+msgid "No year specified"
+msgstr "Не пазначылі год"
+
+msgid "Date out of range"
+msgstr "Дата выходзіць за межы дыяпазону"
+
+msgid "No month specified"
+msgstr "Не пазначылі месяц"
+
+msgid "No day specified"
+msgstr "Не пазначылі дзень"
+
+msgid "No week specified"
+msgstr "Не пазначылі тыдзень"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Няма доступу да %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Няма доступу да %(verbose_name_plural)s, якія будуць, бо «%(class_name)s."
+"allow_future» мае значэньне «не сапраўдна»."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Радок даты “%(datestr)s” не адпавядае выгляду “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Па запыце не знайшлі ніводнага %(verbose_name)s"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Нумар бачыны ня мае значэньня “last” і яго нельга ператварыць у цэлы лік."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Няправільная старонка (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+"Сьпіс парожні, але “%(class_name)s.allow_empty” мае значэньне «не "
+"сапраўдна», што забараняе паказваць парожнія сьпісы."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Не дазваляецца глядзець сьпіс файлаў каталёґа."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” не існуе"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Файлы каталёґа «%(directory)s»"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Усталяванне прайшло паспяхова! Віншаванні!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Паглядзець заўвагі да выпуску для Джангі "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Вы бачыце гэту старонку таму што DEBUG=True у вашым файле налад і вы не "
+"сканфігурыравалі ніякіх URL."
+
+msgid "Django Documentation"
+msgstr "Дакументацыя Джангі"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Тэмы, спасылкі, & як зрабіць"
+
+msgid "Tutorial: A Polling App"
+msgstr "Падручнік: Дадатак для галасавання"
+
+msgid "Get started with Django"
+msgstr "Пачніце з Джангаю"
+
+msgid "Django Community"
+msgstr "Джанга супольнасць"
+
+msgid "Connect, get help, or contribute"
+msgstr "Злучайцеся, атрымлівайце дапамогу, ці спрыяйце"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..f6bd12b0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.po
new file mode 100644
index 00000000..52cc9130
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/LC_MESSAGES/django.po
@@ -0,0 +1,1353 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# arneatec , 2022-2024
+# Boris Chervenkov , 2012
+# Claude Paroz , 2020
+# Jannis Leidel , 2011
+# Lyuboslav Petrov , 2014
+# Mariusz Felisiak , 2023
+# Todor Lubenov , 2013-2015
+# Venelin Stoykov , 2015-2017
+# vestimir , 2014
+# Alexander Atanasov , 2012
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-05-22 11:46-0300\n"
+"PO-Revision-Date: 2024-08-07 06:49+0000\n"
+"Last-Translator: arneatec , 2022-2024\n"
+"Language-Team: Bulgarian (http://app.transifex.com/django/django/language/"
+"bg/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: bg\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "африкаански"
+
+msgid "Arabic"
+msgstr "арабски език"
+
+msgid "Algerian Arabic"
+msgstr "алжирски арабски"
+
+msgid "Asturian"
+msgstr "Астурийски"
+
+msgid "Azerbaijani"
+msgstr "Азербайджански език"
+
+msgid "Bulgarian"
+msgstr "български език"
+
+msgid "Belarusian"
+msgstr "Беларуски"
+
+msgid "Bengali"
+msgstr "бенгалски език"
+
+msgid "Breton"
+msgstr "Бретон"
+
+msgid "Bosnian"
+msgstr "босненски език"
+
+msgid "Catalan"
+msgstr "каталански"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Кюрдски, централен (Сорани)"
+
+msgid "Czech"
+msgstr "чешки"
+
+msgid "Welsh"
+msgstr "уелски"
+
+msgid "Danish"
+msgstr "датски"
+
+msgid "German"
+msgstr "немски"
+
+msgid "Lower Sorbian"
+msgstr "долносорбски"
+
+msgid "Greek"
+msgstr "гръцки"
+
+msgid "English"
+msgstr "английски"
+
+msgid "Australian English"
+msgstr "австралийски английски"
+
+msgid "British English"
+msgstr "британски английски"
+
+msgid "Esperanto"
+msgstr "есперанто"
+
+msgid "Spanish"
+msgstr "испански"
+
+msgid "Argentinian Spanish"
+msgstr "кастилски"
+
+msgid "Colombian Spanish"
+msgstr "колумбийски испански"
+
+msgid "Mexican Spanish"
+msgstr "мексикански испански"
+
+msgid "Nicaraguan Spanish"
+msgstr "никарагуански испански"
+
+msgid "Venezuelan Spanish"
+msgstr "венецуелски испански"
+
+msgid "Estonian"
+msgstr "естонски"
+
+msgid "Basque"
+msgstr "баски"
+
+msgid "Persian"
+msgstr "персийски"
+
+msgid "Finnish"
+msgstr "финландски"
+
+msgid "French"
+msgstr "френски"
+
+msgid "Frisian"
+msgstr "фризийски"
+
+msgid "Irish"
+msgstr "ирландски"
+
+msgid "Scottish Gaelic"
+msgstr "шотландски галски"
+
+msgid "Galician"
+msgstr "галицейски"
+
+msgid "Hebrew"
+msgstr "иврит"
+
+msgid "Hindi"
+msgstr "хинди"
+
+msgid "Croatian"
+msgstr "хърватски"
+
+msgid "Upper Sorbian"
+msgstr "горносорбски"
+
+msgid "Hungarian"
+msgstr "унгарски"
+
+msgid "Armenian"
+msgstr "арменски"
+
+msgid "Interlingua"
+msgstr "интерлингва"
+
+msgid "Indonesian"
+msgstr "индонезийски"
+
+msgid "Igbo"
+msgstr "игбо"
+
+msgid "Ido"
+msgstr "идо"
+
+msgid "Icelandic"
+msgstr "исландски"
+
+msgid "Italian"
+msgstr "италиански"
+
+msgid "Japanese"
+msgstr "японски"
+
+msgid "Georgian"
+msgstr "грузински"
+
+msgid "Kabyle"
+msgstr "кабилски"
+
+msgid "Kazakh"
+msgstr "казахски"
+
+msgid "Khmer"
+msgstr "кхмерски"
+
+msgid "Kannada"
+msgstr "каннада"
+
+msgid "Korean"
+msgstr "корейски"
+
+msgid "Kyrgyz"
+msgstr "киргизки"
+
+msgid "Luxembourgish"
+msgstr "люксембургски"
+
+msgid "Lithuanian"
+msgstr "литовски"
+
+msgid "Latvian"
+msgstr "латвийски"
+
+msgid "Macedonian"
+msgstr "македонски"
+
+msgid "Malayalam"
+msgstr "малаялам"
+
+msgid "Mongolian"
+msgstr "монголски"
+
+msgid "Marathi"
+msgstr "марати"
+
+msgid "Malay"
+msgstr "малайски"
+
+msgid "Burmese"
+msgstr "бирмански"
+
+msgid "Norwegian Bokmål"
+msgstr "норвежки букмол"
+
+msgid "Nepali"
+msgstr "непалски"
+
+msgid "Dutch"
+msgstr "нидерландски"
+
+msgid "Norwegian Nynorsk"
+msgstr "съвременен норвежки"
+
+msgid "Ossetic"
+msgstr "осетски"
+
+msgid "Punjabi"
+msgstr "панджабски"
+
+msgid "Polish"
+msgstr "полски"
+
+msgid "Portuguese"
+msgstr "португалски"
+
+msgid "Brazilian Portuguese"
+msgstr "бразилски португалски"
+
+msgid "Romanian"
+msgstr "румънски"
+
+msgid "Russian"
+msgstr "руски"
+
+msgid "Slovak"
+msgstr "словашки"
+
+msgid "Slovenian"
+msgstr "словенски"
+
+msgid "Albanian"
+msgstr "албански"
+
+msgid "Serbian"
+msgstr "сръбски"
+
+msgid "Serbian Latin"
+msgstr "сръбски - латиница"
+
+msgid "Swedish"
+msgstr "шведски"
+
+msgid "Swahili"
+msgstr "суахили"
+
+msgid "Tamil"
+msgstr "тамилски"
+
+msgid "Telugu"
+msgstr "телугу"
+
+msgid "Tajik"
+msgstr "таджикски"
+
+msgid "Thai"
+msgstr "тайландски"
+
+msgid "Turkmen"
+msgstr "туркменски"
+
+msgid "Turkish"
+msgstr "турски"
+
+msgid "Tatar"
+msgstr "татарски"
+
+msgid "Udmurt"
+msgstr "удмурт"
+
+msgid "Uyghur"
+msgstr "Уйгурски"
+
+msgid "Ukrainian"
+msgstr "украински"
+
+msgid "Urdu"
+msgstr "урду"
+
+msgid "Uzbek"
+msgstr "узбекски"
+
+msgid "Vietnamese"
+msgstr "виетнамски"
+
+msgid "Simplified Chinese"
+msgstr "китайски"
+
+msgid "Traditional Chinese"
+msgstr "традиционен китайски"
+
+msgid "Messages"
+msgstr "Съобщения"
+
+msgid "Site Maps"
+msgstr "Карти на сайта"
+
+msgid "Static Files"
+msgstr "Статични файлове"
+
+msgid "Syndication"
+msgstr "Синдикация"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Номерът на страницата не е цяло число"
+
+msgid "That page number is less than 1"
+msgstr "Номерът на страницата е по-малък от 1"
+
+msgid "That page contains no results"
+msgstr "В тази страница няма резултати"
+
+msgid "Enter a valid value."
+msgstr "Въведете валидна стойност. "
+
+msgid "Enter a valid domain name."
+msgstr "Въведете валидно име на домейн."
+
+msgid "Enter a valid URL."
+msgstr "Въведете валиден URL адрес."
+
+msgid "Enter a valid integer."
+msgstr "Въведете валидно целочислено число."
+
+msgid "Enter a valid email address."
+msgstr "Въведете валиден имейл адрес."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Въведете валиден 'слъг', състоящ се от букви, цифри, тирета или долни тирета."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Въведете валиден 'слъг', състоящ се от Уникод букви, цифри, тирета или долни "
+"тирета."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Въведете валиден %(protocol)s адрес."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 или IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Въведете само еднозначни числа, разделени със запетая. "
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Уверете се, че тази стойност е %(limit_value)s (тя е %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Уверете се, че тази стойност е по-малка или равна на %(limit_value)s ."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Уверете се, че тази стойност е по-голяма или равна на %(limit_value)s ."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Уверете се, че стойността е кратна на стъпката %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Въведете стойност, кратна на стъпката %(limit_value)s, започвайки от "
+"%(offset)s, например %(offset)s, %(valid_value1)s, %(valid_value2)s, и т.н."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Уверете се, че тази стойност е най-малко %(limit_value)d знака (тя има "
+"%(show_value)d )."
+msgstr[1] ""
+"Уверете се, че тази стойност е най-малко %(limit_value)d знака (тя има "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Уверете се, тази стойност има най-много %(limit_value)d знака (тя има "
+"%(show_value)d)."
+msgstr[1] ""
+"Уверете се, че тази стойност има най-много %(limit_value)d знака (тя има "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Въведете число."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Уверете се, че има не повече от %(max)s цифри общо."
+msgstr[1] "Уверете се, че има не повече от %(max)s цифри общо."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+"Уверете се, че има не повече от%(max)s знак след десетичната запетая."
+msgstr[1] ""
+"Уверете се, че има не повече от %(max)s знака след десетичната запетая."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Уверете се, че има не повече от %(max)s цифра преди десетичната запетая."
+msgstr[1] ""
+"Уверете се, че има не повече от %(max)s цифри преди десетичната запетая."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Не са разрешени файлове с раширение \"%(extension)s\". Позволените "
+"разширения са: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Празни знаци не са разрешени."
+
+msgid "and"
+msgstr "и"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s с този %(field_labels)s вече съществува."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Ограничението “%(name)s” е нарушено."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Стойността %(value)r не е валиден избор."
+
+msgid "This field cannot be null."
+msgstr "Това поле не може да има празна стойност."
+
+msgid "This field cannot be blank."
+msgstr "Това поле не може да е празно."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s с този %(field_label)s вече съществува."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s трябва да е уникално за %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Поле от тип: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Стойността на \"%(value)s\" трябва да бъде или True, или False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Стойност \"%(value)s\" трябва да бъде или True, или False или None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Булево (True или False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Символен низ (до %(max_length)s символа)"
+
+msgid "String (unlimited)"
+msgstr "Стринг (неограничен)"
+
+msgid "Comma-separated integers"
+msgstr "Цели числа, разделени с запетая"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Стойността \"%(value)s\" е с невалиден формат за дата. Тя трябва да бъде в "
+"ГГГГ-ММ-ДД формат."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Стойността \"%(value)s\" е в правилния формат (ГГГГ-ММ-ДД), но самата дата е "
+"невалидна."
+
+msgid "Date (without time)"
+msgstr "Дата (без час)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Стойността '%(value)s' е с невалиден формат. Трябва да бъде във формат ГГГГ-"
+"ММ-ДД ЧЧ:ММ[:сс[.uuuuuu]][TZ]"
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Стойността '%(value)s' е с правилен формат ( ГГГГ-ММ-ДД ЧЧ:ММ[:сс[.μμμμμμ]]"
+"[TZ]), но датата/часът са невалидни"
+
+msgid "Date (with time)"
+msgstr "Дата (и час)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Стойността \"%(value)s\" трябва да е десетично число."
+
+msgid "Decimal number"
+msgstr "Десетична дроб"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Стойността “%(value)s” е с невалиден формат. Трябва да бъде във формат [ДД] "
+"[[ЧЧ:]ММ:]сс[.uuuuuu] format."
+
+msgid "Duration"
+msgstr "Продължителност"
+
+msgid "Email address"
+msgstr "Имейл адрес"
+
+msgid "File path"
+msgstr "Път към файл"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Стойността '%(value)s' трябва да е число с плаваща запетая."
+
+msgid "Floating point number"
+msgstr "Число с плаваща запетая"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Стойността \"%(value)s\" трябва да е цяло число."
+
+msgid "Integer"
+msgstr "Цяло число"
+
+msgid "Big (8 byte) integer"
+msgstr "Голямо (8 байта) цяло число"
+
+msgid "Small integer"
+msgstr "2 байта цяло число"
+
+msgid "IPv4 address"
+msgstr "IPv4 адрес"
+
+msgid "IP address"
+msgstr "IP адрес"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Стойността '%(value)s' трябва да бъде None, True или False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "булев (възможните стойности са True, False или None)"
+
+msgid "Positive big integer"
+msgstr "Положително голямо цяло число."
+
+msgid "Positive integer"
+msgstr "Положително цяло число"
+
+msgid "Positive small integer"
+msgstr "Положително 2 байта цяло число"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Слъг (до %(max_length)s )"
+
+msgid "Text"
+msgstr "Текст"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Стойността \"%(value)s\" е с невалиден формат. Тя трябва да бъде в ЧЧ:ММ [:"
+"сс[.μμμμμμ]]"
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Стойността \"%(value)s\" е в правилния формат (ЧЧ:ММ [:сс[.μμμμμμ]]), но "
+"часът е невалиден."
+
+msgid "Time"
+msgstr "Време"
+
+msgid "URL"
+msgstr "URL адрес"
+
+msgid "Raw binary data"
+msgstr "сурови двоични данни"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "\"%(value)s\" не е валиден UUID."
+
+msgid "Universally unique identifier"
+msgstr "Универсално уникален идентификатор"
+
+msgid "File"
+msgstr "Файл"
+
+msgid "Image"
+msgstr "Изображение"
+
+msgid "A JSON object"
+msgstr "Обект във формат JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Стойността трябва да е валиден JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "Инстанция на %(model)s с %(field)s %(value)r не съществува."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Външен ключ (тип, определен от свързаното поле)"
+
+msgid "One-to-one relationship"
+msgstr "едно-към-едно релация "
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s релация"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s релации"
+
+msgid "Many-to-many relationship"
+msgstr "Много-към-много релация"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Това поле е задължително."
+
+msgid "Enter a whole number."
+msgstr "Въведете цяло число. "
+
+msgid "Enter a valid date."
+msgstr "Въведете валидна дата."
+
+msgid "Enter a valid time."
+msgstr "Въведете валиден час."
+
+msgid "Enter a valid date/time."
+msgstr "Въведете валидна дата/час. "
+
+msgid "Enter a valid duration."
+msgstr "Въведете валидна продължителност."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Броят на дните трябва да е между {min_days} и {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Няма изпратен файл. Проверете типа кодиране на формата. "
+
+msgid "No file was submitted."
+msgstr "Няма изпратен файл."
+
+msgid "The submitted file is empty."
+msgstr "Изпратеният файл е празен. "
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] "Уверете се, това име е най-много %(max)d знака (то има %(length)d)."
+msgstr[1] ""
+"Уверете се, че това файлово име има най-много %(max)d знаци (има "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Моля, или пратете файл или маркирайте полето за изчистване, но не и двете."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Качете валидно изображение. Файлът, който сте качили или не е изображение, "
+"или е повреден. "
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Направете валиден избор. %(value)s не е един от възможните избори."
+
+msgid "Enter a list of values."
+msgstr "Въведете списък от стойности"
+
+msgid "Enter a complete value."
+msgstr "Въведете пълна стойност."
+
+msgid "Enter a valid UUID."
+msgstr "Въведете валиден UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Въведете валиден JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Скрито поле %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"ManagementForm данните липсват или са променяни неправомерно. Липсващи "
+"полета: %(field_names)s. Трябва да изпратите уведомление за бъг, ако този "
+"проблем продължава."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Моля изпратете не повече от %(num)d формуляр."
+msgstr[1] "Моля изпратете не повече от %(num)d формуляра."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Моля изпратете поне %(num)d формуляр."
+msgstr[1] "Моля изпратете поне %(num)d формуляра."
+
+msgid "Order"
+msgstr "Ред"
+
+msgid "Delete"
+msgstr "Изтрий"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Моля, коригирайте дублираните данни за %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Моля, коригирайте дублираните данни за %(field)s, които трябва да са "
+"уникални."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Моля, коригирайте дублиранитe данни за %(field_name)s , които трябва да са "
+"уникални за %(lookup)s в %(date_field)s ."
+
+msgid "Please correct the duplicate values below."
+msgstr "Моля, коригирайте повтарящите се стойности по-долу."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Стойността в реда не отговаря на родителската инстанция."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Направете валиден избор. Този не е един от възможните избори. "
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” не е валидна стойност."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s не може да се интерпретира в часова зона %(current_timezone)s; "
+"вероятно стойността е нееднозначна или не съществува изобщо."
+
+msgid "Clear"
+msgstr "Изчисти"
+
+msgid "Currently"
+msgstr "Сега"
+
+msgid "Change"
+msgstr "Промени"
+
+msgid "Unknown"
+msgstr "Неизвестно"
+
+msgid "Yes"
+msgstr "Да"
+
+msgid "No"
+msgstr "Не"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "да,не,може би"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d, байт"
+msgstr[1] "%(size)d байта"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KБ"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s МБ"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s ГБ"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s ТБ"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s ПБ"
+
+msgid "p.m."
+msgstr "след обяд"
+
+msgid "a.m."
+msgstr "преди обяд"
+
+msgid "PM"
+msgstr "след обяд"
+
+msgid "AM"
+msgstr "преди обяд"
+
+msgid "midnight"
+msgstr "полунощ"
+
+msgid "noon"
+msgstr "обяд"
+
+msgid "Monday"
+msgstr "понеделник"
+
+msgid "Tuesday"
+msgstr "вторник"
+
+msgid "Wednesday"
+msgstr "сряда"
+
+msgid "Thursday"
+msgstr "четвъртък"
+
+msgid "Friday"
+msgstr "петък"
+
+msgid "Saturday"
+msgstr "събота"
+
+msgid "Sunday"
+msgstr "неделя"
+
+msgid "Mon"
+msgstr "Пон"
+
+msgid "Tue"
+msgstr "Вт"
+
+msgid "Wed"
+msgstr "Ср"
+
+msgid "Thu"
+msgstr "Чет"
+
+msgid "Fri"
+msgstr "Пет"
+
+msgid "Sat"
+msgstr "Съб"
+
+msgid "Sun"
+msgstr "Нед"
+
+msgid "January"
+msgstr "Януари"
+
+msgid "February"
+msgstr "Февруари"
+
+msgid "March"
+msgstr "Март"
+
+msgid "April"
+msgstr "Април"
+
+msgid "May"
+msgstr "Май"
+
+msgid "June"
+msgstr "Юни"
+
+msgid "July"
+msgstr "Юли"
+
+msgid "August"
+msgstr "Август"
+
+msgid "September"
+msgstr "Септември"
+
+msgid "October"
+msgstr "Октомври"
+
+msgid "November"
+msgstr "Ноември"
+
+msgid "December"
+msgstr "Декември"
+
+msgid "jan"
+msgstr "ян"
+
+msgid "feb"
+msgstr "фев"
+
+msgid "mar"
+msgstr "мар"
+
+msgid "apr"
+msgstr "апр"
+
+msgid "may"
+msgstr "май"
+
+msgid "jun"
+msgstr "юни"
+
+msgid "jul"
+msgstr "юли"
+
+msgid "aug"
+msgstr "авг"
+
+msgid "sep"
+msgstr "сеп"
+
+msgid "oct"
+msgstr "окт"
+
+msgid "nov"
+msgstr "ноем"
+
+msgid "dec"
+msgstr "дек"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ян."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Фев."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Март"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Апр."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Май"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Юни"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Юли"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Авг."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Септ."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Окт."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Ноем."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Дек."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Януари"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Февруари"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Март"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Април"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Май"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Юни"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Юли"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Август"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Септември"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Октомври"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Ноември"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Декември"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Въведете валиден IPv6 адрес."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "или"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d година"
+msgstr[1] "%(num)d години"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d месец"
+msgstr[1] "%(num)d месеца"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d седмица"
+msgstr[1] "%(num)d седмици"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d ден"
+msgstr[1] "%(num)d дни"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d час"
+msgstr[1] "%(num)d часа"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d минута"
+msgstr[1] "%(num)d минути"
+
+msgid "Forbidden"
+msgstr "Забранен"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF проверката се провали. Заявката прекратена."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Вие виждате това съобщение, защото този HTTPS сайт изисква да бъде изпратен "
+"'Referer header' от вашият уеб браузър, но такъв не бе изпратен. Този "
+"header е задължителен от съображения за сигурност, за да се гарантира, че "
+"вашият браузър не е компрометиран от трети страни."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Ако сте настроили вашия браузър да деактивира 'Referer' headers, моля да ги "
+"активирате отново, поне за този сайт, или за HTTPS връзки, или за 'same-"
+"origin' заявки."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Ако използвате таг или "
+"включвате “Referrer-Policy: no-referrer” header, моля премахнете ги. CSRF "
+"защитата изисква “Referer” header, за да извърши стриктна проверка на "
+"изпращача. Ако сте притеснени за поверителността, използвайте алтернативи "
+"като за връзки към сайтове на трети страни."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Вие виждате това съобщение, защото този сайт изисква CSRF бисквитка, когато "
+"се подават формуляри. Тази бисквитка е задължителна от съображения за "
+"сигурност, за да се гарантира, че вашият браузър не е компрометиран от трети "
+"страни."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Ако сте конфигурирали браузъра си да забрани бисквитките, моля да ги "
+"активирате отново, поне за този сайт, или за \"same-origin\" заявки."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Повече информация е на разположение с DEBUG=True."
+
+msgid "No year specified"
+msgstr "Не е посочена година"
+
+msgid "Date out of range"
+msgstr "Датата е в невалиден диапазон"
+
+msgid "No month specified"
+msgstr "Не е посочен месец"
+
+msgid "No day specified"
+msgstr "Не е посочен ден"
+
+msgid "No week specified"
+msgstr "Не е посочена седмица"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Няма достъпни %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Бъдещo %(verbose_name_plural)s е недостъпно, тъй като %(class_name)s."
+"allow_future е False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+"Невалидна текстова стойност на датата “%(datestr)s” при зададен формат "
+"“%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Няма %(verbose_name)s, съвпадащи със заявката"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Страницата не е \"последна\", нито може да се преобразува в цяло число."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Невалидна страница (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Празен списък и \"%(class_name)s.allow_empty\" e False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Тук не е позволено индексиране на директория."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" не съществува"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Индекс %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Инсталацията Ви заработи успешно! Поздравления!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Разгледайте release notes за Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Вие виждате тази страница, защото DEBUG=True е във вашия файл с настройки и не сте "
+"конфигурирали никакви URL-и."
+
+msgid "Django Documentation"
+msgstr "Django документация"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Теми, наръчници, & друга документация"
+
+msgid "Tutorial: A Polling App"
+msgstr "Урок: Приложение за анкета"
+
+msgid "Get started with Django"
+msgstr "Започнете с Django"
+
+msgid "Django Community"
+msgstr "Django общност"
+
+msgid "Connect, get help, or contribute"
+msgstr "Свържете се, получете помощ или допринесете"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..097d9440
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..85f0898d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/formats.py
new file mode 100644
index 00000000..ee90c5b0
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bg/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "d F Y"
+TIME_FORMAT = "H:i"
+# DATETIME_FORMAT =
+# YEAR_MONTH_FORMAT =
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d.m.Y"
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = " " # Non-breaking space
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..ef52f360
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po
new file mode 100644
index 00000000..b554f7a8
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/LC_MESSAGES/django.po
@@ -0,0 +1,1218 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jannis Leidel , 2011
+# M Nasimul Haque , 2013
+# Tahmid Rafi , 2012-2013
+# Tahmid Rafi , 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: Bengali (http://www.transifex.com/django/django/language/"
+"bn/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: bn\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "আফ্রিকার অন্যতম সরকারি ভাষা"
+
+msgid "Arabic"
+msgstr "আরবী"
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr "আজারবাইজানি"
+
+msgid "Bulgarian"
+msgstr "বুলগেরিয়ান"
+
+msgid "Belarusian"
+msgstr "বেলারুশীয়"
+
+msgid "Bengali"
+msgstr "বাংলা"
+
+msgid "Breton"
+msgstr "ব্রেটন"
+
+msgid "Bosnian"
+msgstr "বসনিয়ান"
+
+msgid "Catalan"
+msgstr "ক্যাটালান"
+
+msgid "Czech"
+msgstr "চেক"
+
+msgid "Welsh"
+msgstr "ওয়েল্স"
+
+msgid "Danish"
+msgstr "ড্যানিশ"
+
+msgid "German"
+msgstr "জার্মান"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "গ্রিক"
+
+msgid "English"
+msgstr "ইংলিশ"
+
+msgid "Australian English"
+msgstr ""
+
+msgid "British English"
+msgstr "বৃটিশ ইংলিশ"
+
+msgid "Esperanto"
+msgstr "আন্তর্জাতিক ভাষা"
+
+msgid "Spanish"
+msgstr "স্প্যানিশ"
+
+msgid "Argentinian Spanish"
+msgstr "আর্জেন্টিনিয়ান স্প্যানিশ"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "মেক্সিকান স্প্যানিশ"
+
+msgid "Nicaraguan Spanish"
+msgstr "নিকারাগুয়ান স্প্যানিশ"
+
+msgid "Venezuelan Spanish"
+msgstr "ভেনেজুয়েলার স্প্যানিশ"
+
+msgid "Estonian"
+msgstr "এস্তোনিয়ান"
+
+msgid "Basque"
+msgstr "বাস্ক"
+
+msgid "Persian"
+msgstr "ফারসি"
+
+msgid "Finnish"
+msgstr "ফিনিশ"
+
+msgid "French"
+msgstr "ফ্রেঞ্চ"
+
+msgid "Frisian"
+msgstr "ফ্রিজ্ল্যানডের ভাষা"
+
+msgid "Irish"
+msgstr "আইরিশ"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "গ্যালিসিয়ান"
+
+msgid "Hebrew"
+msgstr "হিব্রু"
+
+msgid "Hindi"
+msgstr "হিন্দী"
+
+msgid "Croatian"
+msgstr "ক্রোয়েশিয়ান"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "হাঙ্গেরিয়ান"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr ""
+
+msgid "Indonesian"
+msgstr "ইন্দোনেশিয়ান"
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr "আইসল্যান্ডিক"
+
+msgid "Italian"
+msgstr "ইটালিয়ান"
+
+msgid "Japanese"
+msgstr "জাপানিজ"
+
+msgid "Georgian"
+msgstr "জর্জিয়ান"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "কাজাখ"
+
+msgid "Khmer"
+msgstr "খমার"
+
+msgid "Kannada"
+msgstr "কান্নাড়া"
+
+msgid "Korean"
+msgstr "কোরিয়ান"
+
+msgid "Luxembourgish"
+msgstr "লুক্সেমবার্গীয়"
+
+msgid "Lithuanian"
+msgstr "লিথুয়ানিয়ান"
+
+msgid "Latvian"
+msgstr "লাটভিয়ান"
+
+msgid "Macedonian"
+msgstr "ম্যাসাডোনিয়ান"
+
+msgid "Malayalam"
+msgstr "মালায়ালম"
+
+msgid "Mongolian"
+msgstr "মঙ্গোলিয়ান"
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Burmese"
+msgstr "বার্মিজ"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "নেপালি"
+
+msgid "Dutch"
+msgstr "ডাচ"
+
+msgid "Norwegian Nynorsk"
+msgstr "নরওয়েজীয়ান নিনর্স্ক"
+
+msgid "Ossetic"
+msgstr "অসেটিক"
+
+msgid "Punjabi"
+msgstr "পাঞ্জাবী"
+
+msgid "Polish"
+msgstr "পোলিশ"
+
+msgid "Portuguese"
+msgstr "পর্তুগীজ"
+
+msgid "Brazilian Portuguese"
+msgstr "ব্রাজিলিয়ান পর্তুগীজ"
+
+msgid "Romanian"
+msgstr "রোমানিয়ান"
+
+msgid "Russian"
+msgstr "রাশান"
+
+msgid "Slovak"
+msgstr "স্লোভাক"
+
+msgid "Slovenian"
+msgstr "স্লোভেনিয়ান"
+
+msgid "Albanian"
+msgstr "আলবেনীয়ান"
+
+msgid "Serbian"
+msgstr "সার্বিয়ান"
+
+msgid "Serbian Latin"
+msgstr "সার্বিয়ান ল্যাটিন"
+
+msgid "Swedish"
+msgstr "সুইডিশ"
+
+msgid "Swahili"
+msgstr "সোয়াহিলি"
+
+msgid "Tamil"
+msgstr "তামিল"
+
+msgid "Telugu"
+msgstr "তেলেগু"
+
+msgid "Thai"
+msgstr "থাই"
+
+msgid "Turkish"
+msgstr "তুর্কি"
+
+msgid "Tatar"
+msgstr "তাতারদেশীয়"
+
+msgid "Udmurt"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "ইউক্রেনিয়ান"
+
+msgid "Urdu"
+msgstr "উর্দু"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "ভিয়েতনামিজ"
+
+msgid "Simplified Chinese"
+msgstr "সরলীকৃত চাইনীজ"
+
+msgid "Traditional Chinese"
+msgstr "প্রচলিত চাইনীজ"
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr ""
+
+msgid "Static Files"
+msgstr ""
+
+msgid "Syndication"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "একটি বৈধ মান দিন।"
+
+msgid "Enter a valid URL."
+msgstr "বৈধ URL দিন"
+
+msgid "Enter a valid integer."
+msgstr ""
+
+msgid "Enter a valid email address."
+msgstr "একটি বৈধ ইমেইল ঠিকানা লিখুন."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "একটি বৈধ IPv4 ঠিকানা দিন।"
+
+msgid "Enter a valid IPv6 address."
+msgstr "একটি বৈধ IPv6 ঠিকানা টাইপ করুন।"
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "একটি বৈধ IPv4 অথবা IPv6 ঠিকানা টাইপ করুন।"
+
+msgid "Enter only digits separated by commas."
+msgstr "শুধুমাত্র কমা দিয়ে সংখ্যা দিন।"
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "সংখ্যাটির মান %(limit_value)s হতে হবে (এটা এখন %(show_value)s আছে)।"
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "সংখ্যাটির মান %(limit_value)s এর চেয়ে ছোট বা সমান হতে হবে।"
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "সংখ্যাটির মান %(limit_value)s এর চেয়ে বড় বা সমান হতে হবে।"
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Enter a number."
+msgstr "একটি সংখ্যা প্রবেশ করান।"
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "এবং"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "এর মান null হতে পারবে না।"
+
+msgid "This field cannot be blank."
+msgstr "এই ফিল্ডের মান ফাঁকা হতে পারে না"
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(field_label)s সহ %(model_name)s আরেকটি রয়েছে।"
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "ফিল্ডের ধরণ: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "বুলিয়ান (হয় True অথবা False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "স্ট্রিং (সর্বোচ্চ %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "কমা দিয়ে আলাদা করা ইন্টিজার"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "তারিখ (সময় বাদে)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "তারিখ (সময় সহ)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "দশমিক সংখ্যা"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "ইমেইল ঠিকানা"
+
+msgid "File path"
+msgstr "ফাইল পথ"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "ফ্লোটিং পয়েন্ট সংখ্যা"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "ইন্টিজার"
+
+msgid "Big (8 byte) integer"
+msgstr "বিগ (৮ বাইট) ইন্টিজার"
+
+msgid "IPv4 address"
+msgstr "IPv4 ঠিকানা"
+
+msgid "IP address"
+msgstr "আইপি ঠিকানা"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "বুলিয়ান (হয় True, False অথবা None)"
+
+msgid "Positive integer"
+msgstr "পজিটিভ ইন্টিজার"
+
+msgid "Positive small integer"
+msgstr "পজিটিভ স্মল ইন্টিজার"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "স্লাগ (সর্বোচ্চ %(max_length)s)"
+
+msgid "Small integer"
+msgstr "স্মল ইন্টিজার"
+
+msgid "Text"
+msgstr "টেক্সট"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "সময়"
+
+msgid "URL"
+msgstr "ইউআরএল (URL)"
+
+msgid "Raw binary data"
+msgstr "র বাইনারি ডাটা"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "ফাইল"
+
+msgid "Image"
+msgstr "ইমেজ"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "ফরেন কি (টাইপ রিলেটেড ফিল্ড দ্বারা নির্ণীত হবে)"
+
+msgid "One-to-one relationship"
+msgstr "ওয়ান-টু-ওয়ান রিলেশানশিপ"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "ম্যানি-টু-ম্যানি রিলেশানশিপ"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "এটি আবশ্যক।"
+
+msgid "Enter a whole number."
+msgstr "একটি পূর্ণসংখ্যা দিন"
+
+msgid "Enter a valid date."
+msgstr "বৈধ তারিখ দিন।"
+
+msgid "Enter a valid time."
+msgstr "বৈধ সময় দিন।"
+
+msgid "Enter a valid date/time."
+msgstr "বৈধ তারিখ/সময় দিন।"
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "কোন ফাইল দেয়া হয়নি। ফর্মের এনকোডিং ঠিক আছে কিনা দেখুন।"
+
+msgid "No file was submitted."
+msgstr "কোন ফাইল দেয়া হয়নি।"
+
+msgid "The submitted file is empty."
+msgstr "ফাইলটি খালি।"
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"একটি ফাইল সাবমিট করুন অথবা ক্লিয়ার চেকবক্সটি চেক করে দিন, যে কোন একটি করুন।"
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"সঠিক ছবি আপলোড করুন। যে ফাইলটি আপলোড করা হয়েছে তা হয় ছবি নয় অথবা নষ্ট হয়ে "
+"যাওয়া ছবি।"
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "%(value)s বৈধ নয়। অনুগ্রহ করে আরেকটি সিলেক্ট করুন।"
+
+msgid "Enter a list of values."
+msgstr "কয়েকটি মানের তালিকা দিন।"
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr ""
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "ক্রম"
+
+msgid "Delete"
+msgstr "মুছুন"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr ""
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+
+msgid "Please correct the duplicate values below."
+msgstr ""
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "এটি বৈধ নয়। অনুগ্রহ করে আরেকটি সিলেক্ট করুন।"
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "পরিষ্কার করুন"
+
+msgid "Currently"
+msgstr "এই মুহুর্তে"
+
+msgid "Change"
+msgstr "পরিবর্তন"
+
+msgid "Unknown"
+msgstr "অজানা"
+
+msgid "Yes"
+msgstr "হ্যাঁ"
+
+msgid "No"
+msgstr "না"
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr "হ্যাঁ,না,হয়তো"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d বাইট"
+msgstr[1] "%(size)d বাইট"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s কিলোবাইট"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s মেগাবাইট"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s গিগাবাইট"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s টেরাবাইট"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s পেটাবাইট"
+
+msgid "p.m."
+msgstr "অপরাহ্ন"
+
+msgid "a.m."
+msgstr "পূর্বাহ্ন"
+
+msgid "PM"
+msgstr "অপরাহ্ন"
+
+msgid "AM"
+msgstr "পূর্বাহ্ন"
+
+msgid "midnight"
+msgstr "মধ্যরাত"
+
+msgid "noon"
+msgstr "দুপুর"
+
+msgid "Monday"
+msgstr "সোমবার"
+
+msgid "Tuesday"
+msgstr "মঙ্গলবার"
+
+msgid "Wednesday"
+msgstr "বুধবার"
+
+msgid "Thursday"
+msgstr "বৃহস্পতিবার"
+
+msgid "Friday"
+msgstr "শুক্রবার"
+
+msgid "Saturday"
+msgstr "শনিবার"
+
+msgid "Sunday"
+msgstr "রবিবার"
+
+msgid "Mon"
+msgstr "সোম"
+
+msgid "Tue"
+msgstr "মঙ্গল"
+
+msgid "Wed"
+msgstr "বুধ"
+
+msgid "Thu"
+msgstr "বৃহঃ"
+
+msgid "Fri"
+msgstr "শুক্র"
+
+msgid "Sat"
+msgstr "শনি"
+
+msgid "Sun"
+msgstr "রবি"
+
+msgid "January"
+msgstr "জানুয়ারি"
+
+msgid "February"
+msgstr "ফেব্রুয়ারি"
+
+msgid "March"
+msgstr "মার্চ"
+
+msgid "April"
+msgstr "এপ্রিল"
+
+msgid "May"
+msgstr "মে"
+
+msgid "June"
+msgstr "জুন"
+
+msgid "July"
+msgstr "জুলাই"
+
+msgid "August"
+msgstr "আগস্ট"
+
+msgid "September"
+msgstr "সেপ্টেম্বর"
+
+msgid "October"
+msgstr "অক্টোবর"
+
+msgid "November"
+msgstr "নভেম্বর"
+
+msgid "December"
+msgstr "ডিসেম্বর"
+
+msgid "jan"
+msgstr "জান."
+
+msgid "feb"
+msgstr "ফেব."
+
+msgid "mar"
+msgstr "মার্চ"
+
+msgid "apr"
+msgstr "এপ্রি."
+
+msgid "may"
+msgstr "মে"
+
+msgid "jun"
+msgstr "জুন"
+
+msgid "jul"
+msgstr "জুল."
+
+msgid "aug"
+msgstr "আগ."
+
+msgid "sep"
+msgstr "সেপ্টে."
+
+msgid "oct"
+msgstr "অক্টো."
+
+msgid "nov"
+msgstr "নভে."
+
+msgid "dec"
+msgstr "ডিসে."
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "জানু."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "ফেব্রু."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "মার্চ"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "এপ্রিল"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "মে"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "জুন"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "জুলাই"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "আগ."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "সেপ্ট."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "অক্টো."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "নভে."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "ডিসে."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "জানুয়ারি"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "ফেব্রুয়ারি"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "মার্চ"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "এপ্রিল"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "মে"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "জুন"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "জুলাই"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "আগস্ট"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "সেপ্টেম্বর"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "অক্টোবর"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "নভেম্বর"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "ডিসেম্বর"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "অথবা"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ","
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "0 minutes"
+msgstr "0 মিনিট"
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "কোন বছর উল্লেখ করা হয়নি"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "কোন মাস উল্লেখ করা হয়নি"
+
+msgid "No day specified"
+msgstr "কোন দিন উল্লেখ করা হয়নি"
+
+msgid "No week specified"
+msgstr "কোন সপ্তাহ উল্লেখ করা হয়নি"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "কোন %(verbose_name_plural)s নেই"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "কুয়েরি ম্যাচ করে এমন কোন %(verbose_name)s পাওয়া যায় নি"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "ডিরেক্টরি ইনডেক্স অনুমোদিত নয়"
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "%(directory)s এর ইনডেক্স"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..e4bfdb0e
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..09837aa8
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/formats.py
new file mode 100644
index 00000000..9d1bb09d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bn/formats.py
@@ -0,0 +1,32 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F, Y"
+TIME_FORMAT = "g:i A"
+# DATETIME_FORMAT =
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "j M, Y"
+# SHORT_DATETIME_FORMAT =
+FIRST_DAY_OF_WEEK = 6 # Saturday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # 25/10/2016
+ "%d/%m/%y", # 25/10/16
+ "%d-%m-%Y", # 25-10-2016
+ "%d-%m-%y", # 25-10-16
+]
+TIME_INPUT_FORMATS = [
+ "%H:%M:%S", # 14:30:59
+ "%H:%M", # 14:30
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S", # 25/10/2006 14:30:59
+ "%d/%m/%Y %H:%M", # 25/10/2006 14:30
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..d864abe9
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.po
new file mode 100644
index 00000000..3b1a759b
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/br/LC_MESSAGES/django.po
@@ -0,0 +1,1297 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Claude Paroz , 2020
+# Ewen , 2021
+# Fulup , 2012,2014
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"PO-Revision-Date: 2021-11-18 21:19+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Breton (http://www.transifex.com/django/django/language/br/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: br\n"
+"Plural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !"
+"=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n"
+"%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > "
+"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 "
+"&& n % 1000000 == 0) ? 3 : 4);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaneg"
+
+msgid "Arabic"
+msgstr "Arabeg"
+
+msgid "Algerian Arabic"
+msgstr ""
+
+msgid "Asturian"
+msgstr "Astureg"
+
+msgid "Azerbaijani"
+msgstr "Azeri"
+
+msgid "Bulgarian"
+msgstr "Bulgareg"
+
+msgid "Belarusian"
+msgstr "Belaruseg"
+
+msgid "Bengali"
+msgstr "Bengaleg"
+
+msgid "Breton"
+msgstr "Brezhoneg"
+
+msgid "Bosnian"
+msgstr "Bosneg"
+
+msgid "Catalan"
+msgstr "Katalaneg"
+
+msgid "Czech"
+msgstr "Tchekeg"
+
+msgid "Welsh"
+msgstr "Kembraeg"
+
+msgid "Danish"
+msgstr "Daneg"
+
+msgid "German"
+msgstr "Alamaneg"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "Gresianeg"
+
+msgid "English"
+msgstr "Saozneg"
+
+msgid "Australian English"
+msgstr "Saozneg Aostralia"
+
+msgid "British English"
+msgstr "Saozneg Breizh-Veur"
+
+msgid "Esperanto"
+msgstr "Esperanteg"
+
+msgid "Spanish"
+msgstr "Spagnoleg"
+
+msgid "Argentinian Spanish"
+msgstr "Spagnoleg Arc'hantina"
+
+msgid "Colombian Spanish"
+msgstr "Spagnoleg Kolombia"
+
+msgid "Mexican Spanish"
+msgstr "Spagnoleg Mec'hiko"
+
+msgid "Nicaraguan Spanish"
+msgstr "Spagnoleg Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Spagnoleg Venezuela"
+
+msgid "Estonian"
+msgstr "Estoneg"
+
+msgid "Basque"
+msgstr "Euskareg"
+
+msgid "Persian"
+msgstr "Perseg"
+
+msgid "Finnish"
+msgstr "Finneg"
+
+msgid "French"
+msgstr "Galleg"
+
+msgid "Frisian"
+msgstr "Frizeg"
+
+msgid "Irish"
+msgstr "Iwerzhoneg"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "Galizeg"
+
+msgid "Hebrew"
+msgstr "Hebraeg"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Kroateg"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "Hungareg"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonezeg"
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandeg"
+
+msgid "Italian"
+msgstr "Italianeg"
+
+msgid "Japanese"
+msgstr "Japaneg"
+
+msgid "Georgian"
+msgstr "Jorjianeg"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "kazak"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannata"
+
+msgid "Korean"
+msgstr "Koreaneg"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "Luksembourgeg"
+
+msgid "Lithuanian"
+msgstr "Lituaneg"
+
+msgid "Latvian"
+msgstr "Latveg"
+
+msgid "Macedonian"
+msgstr "Makedoneg"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongoleg"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "Burmeg"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "nepaleg"
+
+msgid "Dutch"
+msgstr "Nederlandeg"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norvegeg Nynorsk"
+
+msgid "Ossetic"
+msgstr "Oseteg"
+
+msgid "Punjabi"
+msgstr "Punjabeg"
+
+msgid "Polish"
+msgstr "Poloneg"
+
+msgid "Portuguese"
+msgstr "Portugaleg"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugaleg Brazil"
+
+msgid "Romanian"
+msgstr "Roumaneg"
+
+msgid "Russian"
+msgstr "Rusianeg"
+
+msgid "Slovak"
+msgstr "Slovakeg"
+
+msgid "Slovenian"
+msgstr "Sloveneg"
+
+msgid "Albanian"
+msgstr "Albaneg"
+
+msgid "Serbian"
+msgstr "Serbeg"
+
+msgid "Serbian Latin"
+msgstr "Serbeg e lizherennoù latin"
+
+msgid "Swedish"
+msgstr "Svedeg"
+
+msgid "Swahili"
+msgstr "swahileg"
+
+msgid "Tamil"
+msgstr "Tamileg"
+
+msgid "Telugu"
+msgstr "Telougou"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Thai"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turkeg"
+
+msgid "Tatar"
+msgstr "tatar"
+
+msgid "Udmurt"
+msgstr "Oudmourteg"
+
+msgid "Ukrainian"
+msgstr "Ukraineg"
+
+msgid "Urdu"
+msgstr "Ourdou"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnameg"
+
+msgid "Simplified Chinese"
+msgstr "Sinaeg eeunaet"
+
+msgid "Traditional Chinese"
+msgstr "Sinaeg hengounel"
+
+msgid "Messages"
+msgstr "Kemennadenn"
+
+msgid "Site Maps"
+msgstr "Tresoù al lec'hienn"
+
+msgid "Static Files"
+msgstr "Restroù statek"
+
+msgid "Syndication"
+msgstr "Sindikadur"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr "An niver a bajenn mañ a zo bihanoc'h eget 1."
+
+msgid "That page contains no results"
+msgstr "N'eus disoc'h er pajenn-mañ."
+
+msgid "Enter a valid value."
+msgstr "Merkit un talvoud reizh"
+
+msgid "Enter a valid URL."
+msgstr "Merkit un URL reizh"
+
+msgid "Enter a valid integer."
+msgstr "Merkit un niver anterin reizh."
+
+msgid "Enter a valid email address."
+msgstr "Merkit ur chomlec'h postel reizh"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Merkit ur chomlec'h IPv4 reizh."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Merkit ur chomlec'h IPv6 reizh."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Merkit ur chomlec'h IPv4 pe IPv6 reizh."
+
+msgid "Enter only digits separated by commas."
+msgstr "Merkañ hepken sifroù dispartiet dre skejoù."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Bezit sur ez eo an talvoud-mañ %(limit_value)s (evit ar mare ez eo "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Gwiriit mat emañ an talvoud-mañ a-is pe par da %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Gwiriit mat emañ an talvoud-mañ a-us pe par da %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Enter a number."
+msgstr "Merkit un niver."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "ha"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "N'hall ket ar vaezienn chom goullo"
+
+msgid "This field cannot be blank."
+msgstr "N'hall ket ar vaezienn chom goullo"
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Bez' ez eus c'hoazh eus ur %(model_name)s gant ar %(field_label)s-mañ."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Seurt maezienn : %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Boulean (gwir pe gaou)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "neudennad arouezennoù (betek %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Niveroù anterin dispartiet dre ur skej"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Deizad (hep eur)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Deizad (gant an eur)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Niver dekvedennel"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "Chomlec'h postel"
+
+msgid "File path"
+msgstr "Treug war-du ar restr"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Niver gant skej nij"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Anterin"
+
+msgid "Big (8 byte) integer"
+msgstr "Anterin bras (8 okted)"
+
+msgid "Small integer"
+msgstr "Niver anterin bihan"
+
+msgid "IPv4 address"
+msgstr "Chomlec'h IPv4"
+
+msgid "IP address"
+msgstr "Chomlec'h IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boulean (gwir pe gaou pe netra)"
+
+msgid "Positive big integer"
+msgstr ""
+
+msgid "Positive integer"
+msgstr "Niver anterin pozitivel"
+
+msgid "Positive small integer"
+msgstr "Niver anterin bihan pozitivel"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (betek %(max_length)s arouez.)"
+
+msgid "Text"
+msgstr "Testenn"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Eur"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Restr"
+
+msgid "Image"
+msgstr "Skeudenn"
+
+msgid "A JSON object"
+msgstr ""
+
+msgid "Value must be valid JSON."
+msgstr ""
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Alc'hwez estren (seurt termenet dre ar vaezienn liammet)"
+
+msgid "One-to-one relationship"
+msgstr "Darempred unan-ouzh-unan"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Darempred lies-ouzh-lies"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "Rekis eo leuniañ ar vaezienn."
+
+msgid "Enter a whole number."
+msgstr "Merkit un niver anterin."
+
+msgid "Enter a valid date."
+msgstr "Merkit un deiziad reizh"
+
+msgid "Enter a valid time."
+msgstr "Merkit un eur reizh"
+
+msgid "Enter a valid date/time."
+msgstr "Merkit un eur/deiziad reizh"
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "N'eus ket kaset restr ebet. Gwiriit ar seurt enkodañ evit ar restr"
+
+msgid "No file was submitted."
+msgstr "N'eus bet kaset restr ebet."
+
+msgid "The submitted file is empty."
+msgstr "Goullo eo ar restr kaset."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Kasit ur restr pe askit al log riñsañ; an eil pe egile"
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Enpozhiit ur skeudenn reizh. Ar seurt bet enporzhiet ganeoc'h a oa foeltret "
+"pe ne oa ket ur skeudenn"
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Dizuit un dibab reizh. %(value)s n'emañ ket e-touez an dibaboù posupl."
+
+msgid "Enter a list of values."
+msgstr "Merkit ur roll talvoudoù"
+
+msgid "Enter a complete value."
+msgstr "Merkañ un talvoud klok"
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+msgid "Enter a valid JSON."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %d form."
+msgid_plural "Please submit at most %d forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "Please submit at least %d form."
+msgid_plural "Please submit at least %d forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Order"
+msgstr "Urzh"
+
+msgid "Delete"
+msgstr "Diverkañ"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Reizhit ar roadennoù e doubl e %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Reizhit ar roadennoù e doubl e %(field)s, na zle bezañ enni nemet talvoudoù "
+"dzho o-unan."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Reizhit ar roadennoù e doubl e %(field_name)s a rank bezañ ennañ talvodoù en "
+"o-unan evit lodenn %(lookup)s %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Reizhañ ar roadennoù e doubl zo a-is"
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Diuzit un dibab reizh. N'emañ ket an dibab-mañ e-touez ar re bosupl."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Riñsañ"
+
+msgid "Currently"
+msgstr "Evit ar mare"
+
+msgid "Change"
+msgstr "Kemmañ"
+
+msgid "Unknown"
+msgstr "Dianav"
+
+msgid "Yes"
+msgstr "Ya"
+
+msgid "No"
+msgstr "Ket"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "ya,ket,marteze"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d okted"
+msgstr[1] "%(size)d okted"
+msgstr[2] "%(size)d okted"
+msgstr[3] "%(size)d okted"
+msgstr[4] "%(size)d okted"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "g.m."
+
+msgid "a.m."
+msgstr "mintin"
+
+msgid "PM"
+msgstr "G.M."
+
+msgid "AM"
+msgstr "Mintin"
+
+msgid "midnight"
+msgstr "hanternoz"
+
+msgid "noon"
+msgstr "kreisteiz"
+
+msgid "Monday"
+msgstr "Lun"
+
+msgid "Tuesday"
+msgstr "Meurzh"
+
+msgid "Wednesday"
+msgstr "Merc'her"
+
+msgid "Thursday"
+msgstr "Yaou"
+
+msgid "Friday"
+msgstr "Gwener"
+
+msgid "Saturday"
+msgstr "Sadorn"
+
+msgid "Sunday"
+msgstr "Sul"
+
+msgid "Mon"
+msgstr "Lun"
+
+msgid "Tue"
+msgstr "Meu"
+
+msgid "Wed"
+msgstr "Mer"
+
+msgid "Thu"
+msgstr "Yao"
+
+msgid "Fri"
+msgstr "Gwe"
+
+msgid "Sat"
+msgstr "Sad"
+
+msgid "Sun"
+msgstr "Sul"
+
+msgid "January"
+msgstr "Genver"
+
+msgid "February"
+msgstr "C'hwevrer"
+
+msgid "March"
+msgstr "Meurzh"
+
+msgid "April"
+msgstr "Ebrel"
+
+msgid "May"
+msgstr "Mae"
+
+msgid "June"
+msgstr "Mezheven"
+
+msgid "July"
+msgstr "Gouere"
+
+msgid "August"
+msgstr "Eost"
+
+msgid "September"
+msgstr "Gwengolo"
+
+msgid "October"
+msgstr "Here"
+
+msgid "November"
+msgstr "Du"
+
+msgid "December"
+msgstr "Kerzu"
+
+msgid "jan"
+msgstr "Gen"
+
+msgid "feb"
+msgstr "C'hwe"
+
+msgid "mar"
+msgstr "Meu"
+
+msgid "apr"
+msgstr "Ebr"
+
+msgid "may"
+msgstr "Mae"
+
+msgid "jun"
+msgstr "Mez"
+
+msgid "jul"
+msgstr "Gou"
+
+msgid "aug"
+msgstr "Eos"
+
+msgid "sep"
+msgstr "Gwe"
+
+msgid "oct"
+msgstr "Her"
+
+msgid "nov"
+msgstr "Du"
+
+msgid "dec"
+msgstr "Kzu"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Gen."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "C'hwe."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Meu."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Ebr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mae"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Mez."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Gou."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Eos."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Gwe."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Her."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Du"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Kzu"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Genver"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "C'hwevrer"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Meurzh"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Ebrel"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mae"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Mezheven"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Gouere"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Eost"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Gwengolo"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Here"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Du"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Kerzu"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "pe"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ","
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+msgstr[3] ""
+msgstr[4] ""
+
+msgid "Forbidden"
+msgstr "Difennet"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "N'eus bet resisaet bloavezh ebet"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "N'eus bet resisaet miz ebet"
+
+msgid "No day specified"
+msgstr "N'eus bet resisaet deiz ebet"
+
+msgid "No week specified"
+msgstr "N'eus bet resisaet sizhun ebet"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "N'eus %(verbose_name_plural)s ebet da gaout."
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"En dazont ne vo ket a %(verbose_name_plural)s rak faos eo %(class_name)s."
+"allow_future."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+"N'eus bet kavet traezenn %(verbose_name)s ebet o klotaén gant ar goulenn"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "N'haller ket diskwel endalc'had ar c'havlec'h-mañ."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Meneger %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..064cc5d8
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.po
new file mode 100644
index 00000000..a985b84e
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/LC_MESSAGES/django.po
@@ -0,0 +1,1238 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Filip Dupanović , 2011
+# Jannis Leidel , 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: Bosnian (http://www.transifex.com/django/django/language/"
+"bs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: bs\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"
+
+msgid "Afrikaans"
+msgstr ""
+
+msgid "Arabic"
+msgstr "arapski"
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr "Azerbejdžanski"
+
+msgid "Bulgarian"
+msgstr "bugarski"
+
+msgid "Belarusian"
+msgstr ""
+
+msgid "Bengali"
+msgstr "bengalski"
+
+msgid "Breton"
+msgstr ""
+
+msgid "Bosnian"
+msgstr "bosanski"
+
+msgid "Catalan"
+msgstr "katalonski"
+
+msgid "Czech"
+msgstr "češki"
+
+msgid "Welsh"
+msgstr "velški"
+
+msgid "Danish"
+msgstr "danski"
+
+msgid "German"
+msgstr "njemački"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "grčki"
+
+msgid "English"
+msgstr "engleski"
+
+msgid "Australian English"
+msgstr ""
+
+msgid "British English"
+msgstr "Britanski engleski"
+
+msgid "Esperanto"
+msgstr ""
+
+msgid "Spanish"
+msgstr "španski"
+
+msgid "Argentinian Spanish"
+msgstr "Argentinski španski"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "Meksički španski"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nikuaraganski španski"
+
+msgid "Venezuelan Spanish"
+msgstr ""
+
+msgid "Estonian"
+msgstr "estonski"
+
+msgid "Basque"
+msgstr "baskijski"
+
+msgid "Persian"
+msgstr "persijski"
+
+msgid "Finnish"
+msgstr "finski"
+
+msgid "French"
+msgstr "francuski"
+
+msgid "Frisian"
+msgstr "frišanski"
+
+msgid "Irish"
+msgstr "irski"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "galski"
+
+msgid "Hebrew"
+msgstr "hebrejski"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "hrvatski"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "mađarski"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr ""
+
+msgid "Indonesian"
+msgstr "Indonežanski"
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr "islandski"
+
+msgid "Italian"
+msgstr "italijanski"
+
+msgid "Japanese"
+msgstr "japanski"
+
+msgid "Georgian"
+msgstr "gruzijski"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr ""
+
+msgid "Khmer"
+msgstr "kambođanski"
+
+msgid "Kannada"
+msgstr "kanada"
+
+msgid "Korean"
+msgstr "korejski"
+
+msgid "Luxembourgish"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr "litvanski"
+
+msgid "Latvian"
+msgstr "latvijski"
+
+msgid "Macedonian"
+msgstr "makedonski"
+
+msgid "Malayalam"
+msgstr "Malajalamski"
+
+msgid "Mongolian"
+msgstr "Mongolski"
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Burmese"
+msgstr ""
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr ""
+
+msgid "Dutch"
+msgstr "holandski"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norveški novi"
+
+msgid "Ossetic"
+msgstr ""
+
+msgid "Punjabi"
+msgstr "Pandžabi"
+
+msgid "Polish"
+msgstr "poljski"
+
+msgid "Portuguese"
+msgstr "portugalski"
+
+msgid "Brazilian Portuguese"
+msgstr "brazilski portugalski"
+
+msgid "Romanian"
+msgstr "rumunski"
+
+msgid "Russian"
+msgstr "ruski"
+
+msgid "Slovak"
+msgstr "slovački"
+
+msgid "Slovenian"
+msgstr "slovenački"
+
+msgid "Albanian"
+msgstr "albanski"
+
+msgid "Serbian"
+msgstr "srpski"
+
+msgid "Serbian Latin"
+msgstr "srpski latinski"
+
+msgid "Swedish"
+msgstr "švedski"
+
+msgid "Swahili"
+msgstr ""
+
+msgid "Tamil"
+msgstr "tamilski"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Thai"
+msgstr "tajlandski"
+
+msgid "Turkish"
+msgstr "turski"
+
+msgid "Tatar"
+msgstr ""
+
+msgid "Udmurt"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "ukrajinski"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "vijetnamežanski"
+
+msgid "Simplified Chinese"
+msgstr "novokineski"
+
+msgid "Traditional Chinese"
+msgstr "starokineski"
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr ""
+
+msgid "Static Files"
+msgstr ""
+
+msgid "Syndication"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Unesite ispravnu vrijednost."
+
+msgid "Enter a valid URL."
+msgstr "Unesite ispravan URL."
+
+msgid "Enter a valid integer."
+msgstr ""
+
+msgid "Enter a valid email address."
+msgstr ""
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Unesite ispravnu IPv4 adresu."
+
+msgid "Enter a valid IPv6 address."
+msgstr ""
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr ""
+
+msgid "Enter only digits separated by commas."
+msgstr "Unesite samo brojke razdvojene zapetama."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Pobrinite se da je ova vrijednost %(limit_value)s (trenutno je "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Ova vrijednost mora da bude manja ili jednaka %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Ova vrijednost mora biti veća ili jednaka %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Enter a number."
+msgstr "Unesite broj."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "i"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "Ovo polje ne može ostati prazno."
+
+msgid "This field cannot be blank."
+msgstr "Ovo polje ne može biti prazno."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s sa ovom vrijednošću %(field_label)s već postoji."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Polje tipa: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Bulova vrijednost (True ili False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (najviše %(max_length)s znakova)"
+
+msgid "Comma-separated integers"
+msgstr "Cijeli brojevi razdvojeni zapetama"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Datum (bez vremena)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Datum (sa vremenom)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Decimalni broj"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "Email adresa"
+
+msgid "File path"
+msgstr "Putanja fajla"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Broj sa pokrenom zapetom"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Cijeo broj"
+
+msgid "Big (8 byte) integer"
+msgstr "Big (8 bajtni) integer"
+
+msgid "IPv4 address"
+msgstr ""
+
+msgid "IP address"
+msgstr "IP adresa"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Bulova vrijednost (True, False ili None)"
+
+msgid "Positive integer"
+msgstr ""
+
+msgid "Positive small integer"
+msgstr ""
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr ""
+
+msgid "Small integer"
+msgstr ""
+
+msgid "Text"
+msgstr "Tekst"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Vrijeme"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr ""
+
+msgid "Image"
+msgstr ""
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Strani ključ (tip određen povezanim poljem)"
+
+msgid "One-to-one relationship"
+msgstr "Jedan-na-jedan odnos"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Više-na-više odsnos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "Ovo polje se mora popuniti."
+
+msgid "Enter a whole number."
+msgstr "Unesite cijeo broj."
+
+msgid "Enter a valid date."
+msgstr "Unesite ispravan datum."
+
+msgid "Enter a valid time."
+msgstr "Unesite ispravno vrijeme"
+
+msgid "Enter a valid date/time."
+msgstr "Unesite ispravan datum/vrijeme."
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Fajl nije prebačen. Provjerite tip enkodiranja formulara."
+
+msgid "No file was submitted."
+msgstr "Fajl nije prebačen."
+
+msgid "The submitted file is empty."
+msgstr "Prebačen fajl je prazan."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Prebacite ispravan fajl. Fajl koji je prebačen ili nije slika, ili je "
+"oštećen."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"%(value)s nije među ponuđenim vrijednostima. Odaberite jednu od ponuđenih."
+
+msgid "Enter a list of values."
+msgstr "Unesite listu vrijednosti."
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr ""
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "Order"
+msgstr "Redoslijed"
+
+msgid "Delete"
+msgstr "Obriši"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Ispravite dupli sadržaj za polja: %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Ispravite dupli sadržaj za polja: %(field)s, koji mora da bude jedinstven."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Ispravite dupli sadržaj za polja: %(field_name)s, koji mora da bude "
+"jedinstven za %(lookup)s u %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Ispravite duple vrijednosti dole."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Odabrana vrijednost nije među ponuđenima. Odaberite jednu od ponuđenih."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Očisti"
+
+msgid "Currently"
+msgstr "Trenutno"
+
+msgid "Change"
+msgstr "Izmjeni"
+
+msgid "Unknown"
+msgstr "Nepoznato"
+
+msgid "Yes"
+msgstr "Da"
+
+msgid "No"
+msgstr "Ne"
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr "da,ne,možda"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "po p."
+
+msgid "a.m."
+msgstr "prije p."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "ponoć"
+
+msgid "noon"
+msgstr "podne"
+
+msgid "Monday"
+msgstr "ponedjeljak"
+
+msgid "Tuesday"
+msgstr "utorak"
+
+msgid "Wednesday"
+msgstr "srijeda"
+
+msgid "Thursday"
+msgstr "četvrtak"
+
+msgid "Friday"
+msgstr "petak"
+
+msgid "Saturday"
+msgstr "subota"
+
+msgid "Sunday"
+msgstr "nedjelja"
+
+msgid "Mon"
+msgstr "pon."
+
+msgid "Tue"
+msgstr "uto."
+
+msgid "Wed"
+msgstr "sri."
+
+msgid "Thu"
+msgstr "čet."
+
+msgid "Fri"
+msgstr "pet."
+
+msgid "Sat"
+msgstr "sub."
+
+msgid "Sun"
+msgstr "ned."
+
+msgid "January"
+msgstr "januar"
+
+msgid "February"
+msgstr "februar"
+
+msgid "March"
+msgstr "mart"
+
+msgid "April"
+msgstr "april"
+
+msgid "May"
+msgstr "maj"
+
+msgid "June"
+msgstr "juni"
+
+msgid "July"
+msgstr "juli"
+
+msgid "August"
+msgstr "august"
+
+msgid "September"
+msgstr "septembar"
+
+msgid "October"
+msgstr "oktobar"
+
+msgid "November"
+msgstr "novembar"
+
+msgid "December"
+msgstr "decembar"
+
+msgid "jan"
+msgstr "jan."
+
+msgid "feb"
+msgstr "feb."
+
+msgid "mar"
+msgstr "mar."
+
+msgid "apr"
+msgstr "apr."
+
+msgid "may"
+msgstr "maj."
+
+msgid "jun"
+msgstr "jun."
+
+msgid "jul"
+msgstr "jul."
+
+msgid "aug"
+msgstr "aug."
+
+msgid "sep"
+msgstr "sep."
+
+msgid "oct"
+msgstr "okt."
+
+msgid "nov"
+msgstr "nov."
+
+msgid "dec"
+msgstr "dec."
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Mart"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Maj"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Juni"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "juli"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "august"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "septembar"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "oktobar"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "novembar"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "decembar"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "januar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "februar"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "mart"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "april"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "maj"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "juni"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "juli"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "august"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "septembar"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "oktobar"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Novembar"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "decembar"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "ili"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+msgid "0 minutes"
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "Godina nije naznačena"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "Mjesec nije naznačen"
+
+msgid "No day specified"
+msgstr "Dan nije naznačen"
+
+msgid "No week specified"
+msgstr "Sedmica nije naznačena"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr ""
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr ""
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr ""
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..e7cb758e
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..629a182c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/formats.py
new file mode 100644
index 00000000..a15e7099
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/bs/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. N Y."
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = "j. N. Y. G:i T"
+YEAR_MONTH_FORMAT = "F Y."
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "Y M j"
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..208f4a4e
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po
new file mode 100644
index 00000000..01e4dda2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/LC_MESSAGES/django.po
@@ -0,0 +1,1340 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Antoni Aloy , 2012,2015-2017,2021-2022
+# Carles Barrobés , 2011-2012,2014,2020
+# duub qnnp, 2015
+# Emilio Carrion, 2022
+# Gil Obradors Via , 2019
+# Gil Obradors Via , 2019
+# Jannis Leidel , 2011
+# Manel Clos , 2020
+# Manuel Miranda , 2015
+# Mariusz Felisiak , 2021
+# Roger Pons , 2015
+# Santiago Lamora , 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
+"PO-Revision-Date: 2022-07-25 06:49+0000\n"
+"Last-Translator: Emilio Carrion\n"
+"Language-Team: Catalan (http://www.transifex.com/django/django/language/"
+"ca/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikans"
+
+msgid "Arabic"
+msgstr "àrab"
+
+msgid "Algerian Arabic"
+msgstr "àrab argelià"
+
+msgid "Asturian"
+msgstr "Asturià"
+
+msgid "Azerbaijani"
+msgstr "azerbaijanès"
+
+msgid "Bulgarian"
+msgstr "búlgar"
+
+msgid "Belarusian"
+msgstr "Bielorús"
+
+msgid "Bengali"
+msgstr "bengalí"
+
+msgid "Breton"
+msgstr "Bretó"
+
+msgid "Bosnian"
+msgstr "bosnià"
+
+msgid "Catalan"
+msgstr "català"
+
+msgid "Czech"
+msgstr "txec"
+
+msgid "Welsh"
+msgstr "gal·lès"
+
+msgid "Danish"
+msgstr "danès"
+
+msgid "German"
+msgstr "alemany"
+
+msgid "Lower Sorbian"
+msgstr "baix serbi"
+
+msgid "Greek"
+msgstr "grec"
+
+msgid "English"
+msgstr "anglès"
+
+msgid "Australian English"
+msgstr "Anglès d'Austràlia"
+
+msgid "British English"
+msgstr "anglès britànic"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "castellà"
+
+msgid "Argentinian Spanish"
+msgstr "castellà d'Argentina"
+
+msgid "Colombian Spanish"
+msgstr "castellà de Colombia"
+
+msgid "Mexican Spanish"
+msgstr "castellà de Mèxic"
+
+msgid "Nicaraguan Spanish"
+msgstr "castellà de Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "castellà de Veneçuela"
+
+msgid "Estonian"
+msgstr "estonià"
+
+msgid "Basque"
+msgstr "èuscar"
+
+msgid "Persian"
+msgstr "persa"
+
+msgid "Finnish"
+msgstr "finlandès"
+
+msgid "French"
+msgstr "francès"
+
+msgid "Frisian"
+msgstr "frisi"
+
+msgid "Irish"
+msgstr "irlandès"
+
+msgid "Scottish Gaelic"
+msgstr "Gaèlic escocès"
+
+msgid "Galician"
+msgstr "gallec"
+
+msgid "Hebrew"
+msgstr "hebreu"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "croat"
+
+msgid "Upper Sorbian"
+msgstr "alt serbi"
+
+msgid "Hungarian"
+msgstr "hongarès"
+
+msgid "Armenian"
+msgstr "Armeni"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "indonesi"
+
+msgid "Igbo"
+msgstr "lgbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "islandès"
+
+msgid "Italian"
+msgstr "italià"
+
+msgid "Japanese"
+msgstr "japonès"
+
+msgid "Georgian"
+msgstr "georgià"
+
+msgid "Kabyle"
+msgstr "Cabilenc"
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "khmer"
+
+msgid "Kannada"
+msgstr "kannarès"
+
+msgid "Korean"
+msgstr "coreà"
+
+msgid "Kyrgyz"
+msgstr "Kyrgyz"
+
+msgid "Luxembourgish"
+msgstr "Luxemburguès"
+
+msgid "Lithuanian"
+msgstr "lituà"
+
+msgid "Latvian"
+msgstr "letó"
+
+msgid "Macedonian"
+msgstr "macedoni"
+
+msgid "Malayalam"
+msgstr "malaiàlam "
+
+msgid "Mongolian"
+msgstr "mongol"
+
+msgid "Marathi"
+msgstr "Maratí"
+
+msgid "Malay"
+msgstr "Malai"
+
+msgid "Burmese"
+msgstr "Burmès"
+
+msgid "Norwegian Bokmål"
+msgstr "Bokmål noruec"
+
+msgid "Nepali"
+msgstr "nepalès"
+
+msgid "Dutch"
+msgstr "holandès"
+
+msgid "Norwegian Nynorsk"
+msgstr "noruec nynorsk"
+
+msgid "Ossetic"
+msgstr "ossètic"
+
+msgid "Punjabi"
+msgstr "panjabi"
+
+msgid "Polish"
+msgstr "polonès"
+
+msgid "Portuguese"
+msgstr "portuguès"
+
+msgid "Brazilian Portuguese"
+msgstr "portuguès de brasil"
+
+msgid "Romanian"
+msgstr "romanès"
+
+msgid "Russian"
+msgstr "rus"
+
+msgid "Slovak"
+msgstr "eslovac"
+
+msgid "Slovenian"
+msgstr "eslovè"
+
+msgid "Albanian"
+msgstr "albanès"
+
+msgid "Serbian"
+msgstr "serbi"
+
+msgid "Serbian Latin"
+msgstr "serbi llatí"
+
+msgid "Swedish"
+msgstr "suec"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "tàmil"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Tajik"
+msgstr "Tajik"
+
+msgid "Thai"
+msgstr "tailandès"
+
+msgid "Turkmen"
+msgstr "Turkmen"
+
+msgid "Turkish"
+msgstr "turc"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Ukrainian"
+msgstr "ucraïnès"
+
+msgid "Urdu"
+msgstr "urdu"
+
+msgid "Uzbek"
+msgstr "Uzbek"
+
+msgid "Vietnamese"
+msgstr "vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "xinès simplificat"
+
+msgid "Traditional Chinese"
+msgstr "xinès tradicional"
+
+msgid "Messages"
+msgstr "Missatges"
+
+msgid "Site Maps"
+msgstr "Mapes del lloc"
+
+msgid "Static Files"
+msgstr "Arxius estàtics"
+
+msgid "Syndication"
+msgstr "Sindicació"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Aquest número de plana no és un enter"
+
+msgid "That page number is less than 1"
+msgstr "El nombre de plana és inferior a 1"
+
+msgid "That page contains no results"
+msgstr "La plana no conté cap resultat"
+
+msgid "Enter a valid value."
+msgstr "Introduïu un valor vàlid."
+
+msgid "Enter a valid URL."
+msgstr "Introduïu una URL vàlida."
+
+msgid "Enter a valid integer."
+msgstr "Introduïu un enter vàlid."
+
+msgid "Enter a valid email address."
+msgstr "Introdueix una adreça de correu electrònic vàlida"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Introduïu un 'slug' vàlid, consistent en lletres, números, guions o guions "
+"baixos."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Introduïu un 'slug' vàlid format per lletres Unicode, números, guions o "
+"guions baixos."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Introduïu una adreça IPv4 vàlida."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Entreu una adreça IPv6 vàlida."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Entreu una adreça IPv4 o IPv6 vàlida."
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduïu només dígits separats per comes."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Assegureu-vos que aquest valor sigui %(limit_value)s (és %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Assegureu-vos que aquest valor sigui menor o igual que %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Assegureu-vos que aquest valor sigui més gran o igual que %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+" \n"
+"Asseguri's que aquest valor sigui un múltiple de %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Assegureu-vos que aquest valor té almenys %(limit_value)d caràcter (en té "
+"%(show_value)d)."
+msgstr[1] ""
+"Assegureu-vos que el valor tingui almenys %(limit_value)d caràcters (en té "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Assegureu-vos que aquest valor té com a molt %(limit_value)d caràcter (en té "
+"%(show_value)d)."
+msgstr[1] ""
+"Assegureu-vos que aquest valor tingui com a molt %(limit_value)d caràcters "
+"(en té %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduïu un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Assegureu-vos que no hi ha més de %(max)s dígit en total."
+msgstr[1] "Assegureu-vos que no hi hagi més de %(max)s dígits en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Assegureu-vos que no hi ha més de %(max)s decimal."
+msgstr[1] "Assegureu-vos que no hi hagi més de %(max)s decimals."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Assegureu-vos que no hi ha més de %(max)s dígit abans de la coma decimal."
+msgstr[1] ""
+"Assegureu-vos que no hi hagi més de %(max)s dígits abans de la coma decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"L'extensió d'arxiu “%(extension)s” no està permesa. Les extensions permeses "
+"són: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "No es permeten caràcters nuls."
+
+msgid "and"
+msgstr "i"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Ja existeix %(model_name)s amb aquest %(field_labels)s."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "La restricció %(name)s no es compleix."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "El valor %(value)r no és una opció vàlida."
+
+msgid "This field cannot be null."
+msgstr "Aquest camp no pot ser nul."
+
+msgid "This field cannot be blank."
+msgstr "Aquest camp no pot estar en blanc."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Ja existeix %(model_name)s amb aquest %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s ha de ser únic per a %(date_field_label)s i %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Camp del tipus: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "El valor '%(value)s' ha de ser \"True\" o \"False\"."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "El valor '%(value)s' ha de ser cert, fals o buid."
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleà (Cert o Fals)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (de fins a %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Enters separats per comes"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"El valor '%(value)s' no té un format de data vàlid. Ha de tenir el format "
+"YYYY-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"El valor '%(value)s' té el format correcte (YYYY-MM-DD) però no és una data "
+"vàlida."
+
+msgid "Date (without time)"
+msgstr "Data (sense hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"El valor '%(value)s' no té un format vàlid. Ha de tenir el format YYYY-MM-DD "
+"HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"El valor '%(value)s' té el format correcte (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) però no és una data/hora vàlida."
+
+msgid "Date (with time)"
+msgstr "Data (amb hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "El valor '%(value)s' ha de ser un nombre decimal."
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"'El valor %(value)s' té un format invàlid. Ha d'estar en el format [DD] [HH:"
+"[MM:]]ss[.uuuuuu] ."
+
+msgid "Duration"
+msgstr "Durada"
+
+msgid "Email address"
+msgstr "Adreça de correu electrònic"
+
+msgid "File path"
+msgstr "Ruta del fitxer"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "El valor '%(value)s' ha de ser un número decimal."
+
+msgid "Floating point number"
+msgstr "Número de coma flotant"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "El valor '%(value)s' ha de ser un nombre enter."
+
+msgid "Integer"
+msgstr "Enter"
+
+msgid "Big (8 byte) integer"
+msgstr "Enter gran (8 bytes)"
+
+msgid "Small integer"
+msgstr "Enter petit"
+
+msgid "IPv4 address"
+msgstr "Adreça IPv4"
+
+msgid "IP address"
+msgstr "Adreça IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "El valor '%(value)s' ha de ser None, True o False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleà (Cert, Fals o Cap ('None'))"
+
+msgid "Positive big integer"
+msgstr "Enter gran positiu"
+
+msgid "Positive integer"
+msgstr "Enter positiu"
+
+msgid "Positive small integer"
+msgstr "Enter petit positiu"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (fins a %(max_length)s)"
+
+msgid "Text"
+msgstr "Text"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"El valor '%(value)s' no té un format vàlid. Ha de tenir el format HH:MM[:ss[."
+"uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"El valor '%(value)s' té el format correcte (HH:MM[:ss[.uuuuuu]]) però no és "
+"una hora vàlida."
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Dades binàries"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "'%(value)s' no és un UUID vàlid."
+
+msgid "Universally unique identifier"
+msgstr "Identificador únic universal"
+
+msgid "File"
+msgstr "Arxiu"
+
+msgid "Image"
+msgstr "Imatge"
+
+msgid "A JSON object"
+msgstr "Un objecte JSON"
+
+msgid "Value must be valid JSON."
+msgstr "El valor ha de ser JSON vàlid."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "La instància de %(model)s amb %(field)s %(value)r no existeix."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clau forana (tipus determinat pel camp relacionat)"
+
+msgid "One-to-one relationship"
+msgstr "Relació un-a-un"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "relació %(from)s-%(to)s "
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "relacions %(from)s-%(to)s "
+
+msgid "Many-to-many relationship"
+msgstr "Relació molts-a-molts"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Aquest camp és obligatori."
+
+msgid "Enter a whole number."
+msgstr "Introduïu un número enter."
+
+msgid "Enter a valid date."
+msgstr "Introduïu una data vàlida."
+
+msgid "Enter a valid time."
+msgstr "Introduïu una hora vàlida."
+
+msgid "Enter a valid date/time."
+msgstr "Introduïu una data/hora vàlides."
+
+msgid "Enter a valid duration."
+msgstr "Introduïu una durada vàlida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "El número de dies ha de ser entre {min_days} i {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"No s'ha enviat cap fitxer. Comproveu el tipus de codificació del formulari."
+
+msgid "No file was submitted."
+msgstr "No s'ha enviat cap fitxer."
+
+msgid "The submitted file is empty."
+msgstr "El fitxer enviat està buit."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Aquest nom d'arxiu hauria de tenir com a molt %(max)d caràcter (en té "
+"%(length)d)."
+msgstr[1] ""
+"Aquest nom d'arxiu hauria de tenir com a molt %(max)d caràcters (en té "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Si us plau, envieu un fitxer o marqueu la casella de selecció \"netejar\", "
+"no ambdós."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Carregueu una imatge vàlida. El fitxer que heu carregat no era una imatge o "
+"estava corrupte."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Introduïu una llista de valors."
+
+msgid "Enter a complete value."
+msgstr "Introduïu un valor complet."
+
+msgid "Enter a valid UUID."
+msgstr "Intruduïu un UUID vàlid."
+
+msgid "Enter a valid JSON."
+msgstr "Introduïu un JSON vàlid."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Camp ocult %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Les dades de ManagementForm no hi són o han estat modificades. Camps que "
+"falten: %(field_names)s. . Necessitaràs omplir una incidència si el problema "
+"persisteix."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Enviau com a màxim %(num)d formulari, si us plau."
+msgstr[1] "Enviau com a màxim %(num)d formularis, si us plau."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Enviau com a mínim %(num)d formulari, si us plau."
+msgstr[1] "Enviau com a mínim %(num)d formularis, si us plau."
+
+msgid "Order"
+msgstr "Ordre"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Si us plau, corregiu la dada duplicada per a %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Si us plau, corregiu la dada duplicada per a %(field)s, la qual ha de ser "
+"única."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Si us plau, corregiu la dada duplicada per a %(field_name)s, la qual ha de "
+"ser única per a %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Si us plau, corregiu els valors duplicats a sota."
+
+msgid "The inline value did not match the parent instance."
+msgstr "El valor en línia no coincideix amb la instància mare ."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Esculliu una opció vàlida. La opció triada no és una de les opcions "
+"disponibles."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" no és un valor vàlid"
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"No s'ha pogut interpretar %(datetime)s a la zona horària "
+"%(current_timezone)s; potser és ambigua o no existeix."
+
+msgid "Clear"
+msgstr "Netejar"
+
+msgid "Currently"
+msgstr "Actualment"
+
+msgid "Change"
+msgstr "Modificar"
+
+msgid "Unknown"
+msgstr "Desconegut"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "sí,no,potser"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "mitjanit"
+
+msgid "noon"
+msgstr "migdia"
+
+msgid "Monday"
+msgstr "Dilluns"
+
+msgid "Tuesday"
+msgstr "Dimarts"
+
+msgid "Wednesday"
+msgstr "Dimecres"
+
+msgid "Thursday"
+msgstr "Dijous"
+
+msgid "Friday"
+msgstr "Divendres"
+
+msgid "Saturday"
+msgstr "Dissabte"
+
+msgid "Sunday"
+msgstr "Diumenge"
+
+msgid "Mon"
+msgstr "dl."
+
+msgid "Tue"
+msgstr "dt."
+
+msgid "Wed"
+msgstr "dc."
+
+msgid "Thu"
+msgstr "dj."
+
+msgid "Fri"
+msgstr "dv."
+
+msgid "Sat"
+msgstr "ds."
+
+msgid "Sun"
+msgstr "dg."
+
+msgid "January"
+msgstr "gener"
+
+msgid "February"
+msgstr "febrer"
+
+msgid "March"
+msgstr "març"
+
+msgid "April"
+msgstr "abril"
+
+msgid "May"
+msgstr "maig"
+
+msgid "June"
+msgstr "juny"
+
+msgid "July"
+msgstr "juliol"
+
+msgid "August"
+msgstr "agost"
+
+msgid "September"
+msgstr "setembre"
+
+msgid "October"
+msgstr "octubre"
+
+msgid "November"
+msgstr "novembre"
+
+msgid "December"
+msgstr "desembre"
+
+msgid "jan"
+msgstr "gen."
+
+msgid "feb"
+msgstr "feb."
+
+msgid "mar"
+msgstr "març"
+
+msgid "apr"
+msgstr "abr."
+
+msgid "may"
+msgstr "maig"
+
+msgid "jun"
+msgstr "juny"
+
+msgid "jul"
+msgstr "jul."
+
+msgid "aug"
+msgstr "ago."
+
+msgid "sep"
+msgstr "set."
+
+msgid "oct"
+msgstr "oct."
+
+msgid "nov"
+msgstr "nov."
+
+msgid "dec"
+msgstr "des."
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Gen."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Març"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Maig"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Juny"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Jul."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Set."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Des."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "gener"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "febrer"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "març"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "maig"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "juny"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "juliol"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "agost"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "setembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "novembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "desembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Aquesta no és una adreça IPv6 vàlida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d any"
+msgstr[1] "%(num)d anys"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mes"
+msgstr[1] "%(num)d mesos"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d setmana"
+msgstr[1] "%(num)d setmanes"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d dia"
+msgstr[1] "%(num)d dies"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hora"
+msgstr[1] "%(num)d hores"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minut"
+msgstr[1] "%(num)d minuts"
+
+msgid "Forbidden"
+msgstr "Prohibit"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "La verificació de CSRF ha fallat. Petició abortada."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Esteu veient aquest missatge perquè aquest lloc HTTPS requereix que el "
+"vostre navegador enviï una capçalera “Referer\", i no n'ha arribada cap. "
+"Aquesta capçalera es requereix per motius de seguretat, per garantir que el "
+"vostre navegador no està sent segrestat per tercers."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Si heu configurat el vostre navegador per deshabilitar capçaleres “Referer"
+"\", sisplau torneu-les a habilitar, com a mínim per a aquest lloc, o per a "
+"connexions HTTPs, o per a peticions amb el mateix orígen."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Si utilitzeu l'etiqueta o "
+"incloeu la capçalera “Referer-Policy: no-referrer\" , si us plau elimineu-"
+"la. La protecció CSRF requereix la capçalera “Referer\" per a fer una "
+"comprovació estricta. Si esteu preocupats quant a la privacitat, utilitzeu "
+"alternatives com per enllaços a aplicacions de "
+"tercers."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Estàs veient aquest missatge perquè aquest lloc requereix una galeta CSRF "
+"quan s'envien formularis. Aquesta galeta es requereix per motius de "
+"seguretat, per garantir que el teu navegador no està sent infiltrat per "
+"tercers."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Si has configurat el teu navegador per deshabilitar galetes, sisplau torna-"
+"les a habilitar, com a mínim per a aquest lloc, o per a peticions amb el "
+"mateix orígen."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Més informació disponible amb DEBUG=True."
+
+msgid "No year specified"
+msgstr "No s'ha especificat any"
+
+msgid "Date out of range"
+msgstr "Data fora de rang"
+
+msgid "No month specified"
+msgstr "No s'ha especificat mes"
+
+msgid "No day specified"
+msgstr "No s'ha especificat dia"
+
+msgid "No week specified"
+msgstr "No s'ha especificat setmana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Cap %(verbose_name_plural)s disponible"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Futurs %(verbose_name_plural)s no disponibles perquè %(class_name)s."
+"allow_future és Fals."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Cadena invàlida de data '%(datestr)s' donat el format '%(format)s'"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No s'ha trobat cap %(verbose_name)s que coincideixi amb la petició"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "La pàgina no és 'last', ni es pot convertir en un enter"
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Pàgina invàlida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Llista buida i '%(class_name)s.allow_empty' és Fals."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Aquí no es permeten índex de directori."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" no existeix"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índex de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "La instal·lació ha estat un èxit! Enhorabona!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Visualitza notes de llançament per Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"Esteu veient aquesta pàgina perquè el paràmetre DEBUG=Trueconsta al fitxer de configuració i no teniu cap "
+"URL configurada."
+
+msgid "Django Documentation"
+msgstr "Documentació de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Temes, referències, & Com es fa"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: Una aplicació enquesta"
+
+msgid "Get started with Django"
+msgstr "Primers passos amb Django"
+
+msgid "Django Community"
+msgstr "Comunitat Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Connecta, obté ajuda, o col·labora"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..ca7e576d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..6e33393c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/formats.py
new file mode 100644
index 00000000..e6162990
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ca/formats.py
@@ -0,0 +1,30 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"j E \d\e Y"
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = r"j E \d\e Y \a \l\e\s G:i"
+YEAR_MONTH_FORMAT = r"F \d\e\l Y"
+MONTH_DAY_FORMAT = r"j E"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y G:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '31/12/2009'
+ "%d/%m/%y", # '31/12/09'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..0f7b0196
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po
new file mode 100644
index 00000000..b1351bbd
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/LC_MESSAGES/django.po
@@ -0,0 +1,1333 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Bawar Jalal, 2021
+# Bawar Jalal, 2020-2021
+# Bawar Jalal, 2020
+# Kosar Tofiq Saeed , 2020-2021
+# Natalia, 2025
+# Swara , 2022-2024
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: Natalia, 2025\n"
+"Language-Team: Central Kurdish (http://app.transifex.com/django/django/"
+"language/ckb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ckb\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "ئەفریقی"
+
+msgid "Arabic"
+msgstr "عەرەبی"
+
+msgid "Algerian Arabic"
+msgstr "عەرەبیی جەزائیری"
+
+msgid "Asturian"
+msgstr "ئاستوری"
+
+msgid "Azerbaijani"
+msgstr "ئازەربایجانی"
+
+msgid "Bulgarian"
+msgstr "بولگاری"
+
+msgid "Belarusian"
+msgstr "بیلاڕوسی"
+
+msgid "Bengali"
+msgstr "بەنگالی"
+
+msgid "Breton"
+msgstr "بریتۆنی"
+
+msgid "Bosnian"
+msgstr "بۆسنێیی"
+
+msgid "Catalan"
+msgstr "کاتالانی"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "کوردی"
+
+msgid "Czech"
+msgstr "چیکی"
+
+msgid "Welsh"
+msgstr "وێڵزی"
+
+msgid "Danish"
+msgstr "دانیمارکی"
+
+msgid "German"
+msgstr "ئەڵمانی"
+
+msgid "Lower Sorbian"
+msgstr "سۆربیانی خواروو"
+
+msgid "Greek"
+msgstr "یۆنانی"
+
+msgid "English"
+msgstr "ئینگلیزی"
+
+msgid "Australian English"
+msgstr "ئینگلیزی ئوستورالی"
+
+msgid "British English"
+msgstr "ئینگلیزی بەریتانی"
+
+msgid "Esperanto"
+msgstr "ئێسپەرانتەویی"
+
+msgid "Spanish"
+msgstr "ئیسپانی"
+
+msgid "Argentinian Spanish"
+msgstr "ئیسپانیی ئەرجەنتینی"
+
+msgid "Colombian Spanish"
+msgstr "ئیسپانیی کۆڵۆمبی"
+
+msgid "Mexican Spanish"
+msgstr "ئیسپانیی مەکسیکی"
+
+msgid "Nicaraguan Spanish"
+msgstr "ئیسپانیی نیکاراگوایی"
+
+msgid "Venezuelan Spanish"
+msgstr "ئیسپانیی فەنزوێلایی"
+
+msgid "Estonian"
+msgstr "ئیستۆنی"
+
+msgid "Basque"
+msgstr "باسکۆیی"
+
+msgid "Persian"
+msgstr "فارسی"
+
+msgid "Finnish"
+msgstr "فینلەندی"
+
+msgid "French"
+msgstr "فەڕەنسی"
+
+msgid "Frisian"
+msgstr "فریسی"
+
+msgid "Irish"
+msgstr "ئیرلەندی"
+
+msgid "Scottish Gaelic"
+msgstr "گالیکی سکۆتلەندی"
+
+msgid "Galician"
+msgstr "گالیسیایی"
+
+msgid "Hebrew"
+msgstr "ئیسرائیلی"
+
+msgid "Hindi"
+msgstr "هیندی"
+
+msgid "Croatian"
+msgstr "کڕواتی"
+
+msgid "Upper Sorbian"
+msgstr "سڕبی سەروو"
+
+msgid "Hungarian"
+msgstr "هەنگاری"
+
+msgid "Armenian"
+msgstr "ئەرمەنی"
+
+msgid "Interlingua"
+msgstr "ئینتەرلینگوایی"
+
+msgid "Indonesian"
+msgstr "ئیندۆنیزی"
+
+msgid "Igbo"
+msgstr "ئیگبۆیی"
+
+msgid "Ido"
+msgstr "ئیدۆیی"
+
+msgid "Icelandic"
+msgstr "ئایسلەندی"
+
+msgid "Italian"
+msgstr "ئیتاڵی"
+
+msgid "Japanese"
+msgstr "یابانی"
+
+msgid "Georgian"
+msgstr "جۆرجی"
+
+msgid "Kabyle"
+msgstr "کابایلی"
+
+msgid "Kazakh"
+msgstr "کازاخی"
+
+msgid "Khmer"
+msgstr "خەمیری"
+
+msgid "Kannada"
+msgstr "کانێدایی"
+
+msgid "Korean"
+msgstr "کۆری"
+
+msgid "Kyrgyz"
+msgstr "کیرگزستانی"
+
+msgid "Luxembourgish"
+msgstr "لۆکسەمبۆرگی"
+
+msgid "Lithuanian"
+msgstr "لیتوانی"
+
+msgid "Latvian"
+msgstr "لاتیڤی"
+
+msgid "Macedonian"
+msgstr "مەسەدۆنی"
+
+msgid "Malayalam"
+msgstr "مەلایالامی"
+
+msgid "Mongolian"
+msgstr "مەنگۆلی"
+
+msgid "Marathi"
+msgstr "ماراسی"
+
+msgid "Malay"
+msgstr "مالایی"
+
+msgid "Burmese"
+msgstr "بورمایی"
+
+msgid "Norwegian Bokmål"
+msgstr "بۆکامۆلی نەرویجی"
+
+msgid "Nepali"
+msgstr "نیپاڵی"
+
+msgid "Dutch"
+msgstr "هۆڵەندی"
+
+msgid "Norwegian Nynorsk"
+msgstr "نینۆرسکی نەرویجی"
+
+msgid "Ossetic"
+msgstr "ئۆسیتی"
+
+msgid "Punjabi"
+msgstr "پونجابی"
+
+msgid "Polish"
+msgstr "پۆڵۆنی"
+
+msgid "Portuguese"
+msgstr "پورتوگالی"
+
+msgid "Brazilian Portuguese"
+msgstr "پورتوگالیی بەڕازیلی"
+
+msgid "Romanian"
+msgstr "ڕۆمانیایی"
+
+msgid "Russian"
+msgstr "ڕووسی"
+
+msgid "Slovak"
+msgstr "سلۆڤاکی"
+
+msgid "Slovenian"
+msgstr "سلۆڤینیایی"
+
+msgid "Albanian"
+msgstr "ئەلبانی"
+
+msgid "Serbian"
+msgstr "سڕبی"
+
+msgid "Serbian Latin"
+msgstr "سڕبیی لاتین"
+
+msgid "Swedish"
+msgstr "سویدی"
+
+msgid "Swahili"
+msgstr "سواهیلی"
+
+msgid "Tamil"
+msgstr "تامیلی"
+
+msgid "Telugu"
+msgstr "تێلوگویی"
+
+msgid "Tajik"
+msgstr "تاجیکی"
+
+msgid "Thai"
+msgstr "تایلاندی"
+
+msgid "Turkmen"
+msgstr "تورکمانی"
+
+msgid "Turkish"
+msgstr "تورکی"
+
+msgid "Tatar"
+msgstr "تاتاری"
+
+msgid "Udmurt"
+msgstr "ئودمورتی"
+
+msgid "Uyghur"
+msgstr "ئۆیغور"
+
+msgid "Ukrainian"
+msgstr "ئۆکرانی"
+
+msgid "Urdu"
+msgstr "ئوردویی"
+
+msgid "Uzbek"
+msgstr "ئۆزبەکی"
+
+msgid "Vietnamese"
+msgstr "ڤێتنامی"
+
+msgid "Simplified Chinese"
+msgstr "چینی سادەکراو"
+
+msgid "Traditional Chinese"
+msgstr "چینی کلاسیکی"
+
+msgid "Messages"
+msgstr "پەیامەکان"
+
+msgid "Site Maps"
+msgstr "نەخشەکانی پێگە"
+
+msgid "Static Files"
+msgstr "فایلە نەگۆڕەکان"
+
+msgid "Syndication"
+msgstr "هاوبەشکردن"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "ئەو ژمارەی پەڕەیە ژمارەی تەواو نییە"
+
+msgid "That page number is less than 1"
+msgstr "ئەو ژمارەی پەڕەیە لە 1 کەمترە"
+
+msgid "That page contains no results"
+msgstr "ئەو پەڕەیە هیچ ئەنجامێکی تێدا نییە"
+
+msgid "Enter a valid value."
+msgstr "نرخێکی دروست لەناودابنێ."
+
+msgid "Enter a valid domain name."
+msgstr "پاوەن/دۆمەینی دروست بنوسە."
+
+msgid "Enter a valid URL."
+msgstr "URL ی دروست لەناودابنێ."
+
+msgid "Enter a valid integer."
+msgstr "ژمارەیەکی تەواو لەناودابنێ"
+
+msgid "Enter a valid email address."
+msgstr "ناونیشانێکی ئیمەیڵی دروست لەناودابنێ"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr "\"سلەگ\"ێکی دروست بنوسە کە پێکهاتووە لە پیت، ژمارە، ژێرهێڵ یان هێڵ."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"\"سلەگ\"ێکی دروست بنوسە کە پێکهاتووە لە پیتی یونیکۆد، ژمارە، هێڵی ژێرەوە، "
+"یان هێما."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "ناونیشانی %(protocol)s دروست بنوسە."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 یان IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "تەنها ژمارە لەناودابنێ بە فاریزە جیاکرابێتەوە."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "دڵنیاببە ئەم نرخە %(limit_value)sە (ئەوە %(show_value)sە). "
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "دڵنیاببە ئەم نرخە کەمترە یاخود یەکسانە بە %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "دڵنیاببە ئەم نرخە گەورەترە یاخود یەکسانە بە %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "دڵنیابە کە ئەم بەهایە چەندانێکە لە قەبارەی هەنگاوی%(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"دڵنیابە ئەم بەهایە چەند هێندەیەکی قەبارەی هەنگاوەکانە %(limit_value)s, "
+"دەستپێدەکات لە %(offset)s، بۆ نموونە %(offset)s، %(valid_value1)s، "
+"%(valid_value2)s، هتد."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"دڵنیابە ئەم بەهایە لانیکەم %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)."
+msgstr[1] ""
+"دڵنیابە ئەم بەهایە لانیکەم %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"دڵنیابە ئەم بەهایە لانی زۆر %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)."
+msgstr[1] ""
+"دڵنیابە ئەم بەهایە لانی زۆر %(limit_value)d نوسەی هەیە (%(show_value)d هەیە)."
+
+msgid "Enter a number."
+msgstr "ژمارەیەک بنوسە."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارە نیە."
+msgstr[1] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارە نیە."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارەی دەیی نیە."
+msgstr[1] "دڵنیابە لەوەی بەگشتی زیاتر لە %(max)s ژمارەی دەیی نیە."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "دڵنیابە لەوەی زیاتر نیە لە %(max)s ژمارە پێش خاڵی ژمارەی دەیی."
+msgstr[1] "دڵنیابە لەوەی زیاتر نیە لە %(max)s ژمارە پێش خاڵی ژمارەی دەیی."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"پەڕگەپاشبەندی “%(extension)s” ڕێگەپێنەدراوە. پاشبنەدە ڕێگەپێدراوەکان: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "نوسەی بەتاڵ ڕێگەپێنەدراوە."
+
+msgid "and"
+msgstr "و"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s لەگەڵ %(field_labels)s پێشتر تۆمارکراوە."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "سنوردارکردنی “%(name)s” پێشێلکراوە."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "بەهای %(value)r هەڵبژاردەیەکی دروست نیە."
+
+msgid "This field cannot be null."
+msgstr "ئەم خانەیە نابێت پووچ بێت."
+
+msgid "This field cannot be blank."
+msgstr "ئەم خانەیە نابێت بەتاڵ بێت."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s لەگەڵ %(field_label)s پێشتر تۆمارکراوە."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s دەبێت بێهاوتا بێت بۆ %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "خانە لە جۆری: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "بەهای “%(value)s” دەبێت دروست یان چەوت بێت."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "بەهای “%(value)s” دەبێت یان دروست، یان چەوت یان هیچ بێت."
+
+msgid "Boolean (Either True or False)"
+msgstr "بولی (یان دروست یان چەوت)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "ڕیزبەند (تا %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "ڕیز(بێسنوور)"
+
+msgid "Comma-separated integers"
+msgstr "ژمارە تەواوەکان بە کۆما جیاکراونەتەوە"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"بەهای “%(value)s” شێوازی بەروارێکی نادروستی هەیە. دەبێت بەشێوازی YYYY-MM-DD "
+"بێت."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"بەهای “%(value)s” شێوازێکی تەواوی هەیە (YYYY-MM-DD) بەڵام بەروارێکی هەڵەیە."
+
+msgid "Date (without time)"
+msgstr "بەروار (بەبێ کات)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"بەهای “%(value)s” شێوازێکی نادروستی هەیە. دەبێت بەشێوەی YYYY-MM-DD HH:MM[:"
+"ss[.uuuuuu]][TZ] بێت."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"بەهای “%(value)s” شێوازێکی دروستی هەیە (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) "
+"بەروار/کاتێکی نادروستە."
+
+msgid "Date (with time)"
+msgstr "بەروار (لەگەڵ کات)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "بەهای “%(value)s” دەبێت ژمارەیەکی دەیی بێت."
+
+msgid "Decimal number"
+msgstr "ژمارەی دەیی"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"بەهای “%(value)s” شێوازێکی هەڵەی هەیە. دەبێت بەشێوەی [DD] [[HH:]MM:]ss[."
+"uuuuuu] format بێت."
+
+msgid "Duration"
+msgstr "ماوە"
+
+msgid "Email address"
+msgstr "ناونیشانی ئیمەیڵ"
+
+msgid "File path"
+msgstr "ڕێڕەوی پەڕگە"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "بەهای “%(value)s” دەبێت ژمارەی کەرتی بێت."
+
+msgid "Floating point number"
+msgstr "خاڵی ژمارەی کەرتی"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "بەهای “%(value)s” دەبێت ژمارەی تەواو بێت."
+
+msgid "Integer"
+msgstr "ژمارەی تەواو"
+
+msgid "Big (8 byte) integer"
+msgstr "(8بایت) ژمارەی تەواوی گەورە"
+
+msgid "Small integer"
+msgstr "ژمارەی تەواوی بچوک"
+
+msgid "IPv4 address"
+msgstr "ناونیشانی IPv4"
+
+msgid "IP address"
+msgstr "ناونیشانی ئای پی"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "بەهای “%(value)s” دەبێت یان هیچ، یان دروست یان چەوت بێت."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "بولی (یان دروست یان چەوت یان هیچ)"
+
+msgid "Positive big integer"
+msgstr "ژمارەی تەواوی گەورەی ئەرێنی"
+
+msgid "Positive integer"
+msgstr "ژمارەی تەواوی ئەرێنی"
+
+msgid "Positive small integer"
+msgstr "ژمارەی تەواوی بچوکی ئەرێنی"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "سلەگ (تا %(max_length)s)"
+
+msgid "Text"
+msgstr "نوسین"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"بەهای “%(value)s” شێوازێکی هەڵەی هەیە. دەبێت بەشێوەی HH:MM[:ss[.uuuuuu]] بێت."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s” بەهاکە شێوازێکی دروستی هەیە (HH:MM[:ss[.uuuuuu]]) بەڵام کاتێکی "
+"نادروستە."
+
+msgid "Time"
+msgstr "کات"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "داتای دووانەیی خاو"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s ” UUIDێکی دروستی نیە."
+
+msgid "Universally unique identifier"
+msgstr "ناسێنەرێکی بێهاوتای گشتگیر"
+
+msgid "File"
+msgstr "پەڕگە"
+
+msgid "Image"
+msgstr "وێنە"
+
+msgid "A JSON object"
+msgstr "ئۆبجێکتێکی JSON"
+
+msgid "Value must be valid JSON."
+msgstr "بەها پێویستە JSONی دروست بێت."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "کلیلی دەرەکی(جۆر بەپێی خانەی پەیوەندیدار دیاری دەکرێت)"
+
+msgid "One-to-one relationship"
+msgstr "پەیوەندیی یەک-بۆ-یەک"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s پەیوەندی"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s پەیوەندییەکان"
+
+msgid "Many-to-many relationship"
+msgstr "پەیوەندیی گشت-بۆ-گشت"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":؟.!"
+
+msgid "This field is required."
+msgstr "ئەم خانەیە داواکراوە."
+
+msgid "Enter a whole number."
+msgstr "ژمارەیەکی تەواو بنوسە."
+
+msgid "Enter a valid date."
+msgstr "بەرواری دروست بنوسە."
+
+msgid "Enter a valid time."
+msgstr "تکایە کاتێکی ڕاست بنووسە."
+
+msgid "Enter a valid date/time."
+msgstr "بەروار/کاتی دروست بنوسە."
+
+msgid "Enter a valid duration."
+msgstr "بەهای دروستی ماوە بنوسە."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "ژمارەی ڕۆژەکان دەبێت لەنێوان {min_days} و {max_days} بێت."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "هیچ پەڕگەیەک نەنێردراوە. جۆری کۆدکردنی پەڕگەکە لەسەر فۆرمەکە بپشکنە."
+
+msgid "No file was submitted."
+msgstr "هیچ پەڕگەیەک نەنێردراوە."
+
+msgid "The submitted file is empty."
+msgstr "پەڕگەی نێردراو بەتاڵە."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] "دڵنیابە کە ناوی پەڕگە زیاتر لە %(max)d نوسەی نیە (%(length)d هەیە)."
+msgstr[1] "دڵنیابە کە ناوی پەڕگە زیاتر لە %(max)d نوسەی نیە (%(length)d هەیە)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"تکایە یان پەڕگەیەک بنێرە یان چوارچێوەی پشکنین هەڵبژێرە، نەک هەردووکیان."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"وێنەی دروست هەڵبژێرە. ئەو پەڕگەی بەرزتکردۆوە یان وێنە نیە یان وێنەیەکی خراپ "
+"بووە."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"هەڵبژاردەیەکی دروست دیاری بکە. %(value)s یەکێک نیە لە هەڵبژاردە بەردەستەکان."
+
+msgid "Enter a list of values."
+msgstr "لیستی بەهاکان بنوسە."
+
+msgid "Enter a complete value."
+msgstr "تەواوی بەهایەک بنوسە."
+
+msgid "Enter a valid UUID."
+msgstr "بەهای دروستی UUID بنوسە."
+
+msgid "Enter a valid JSON."
+msgstr "JSONی دروست بنوسە."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(خانەی شاراوە %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"داتاکانی فۆڕمی بەڕێوەبردن نەماوە یان دەستکاری کراون. خانە وونبووەکان: "
+"%(field_names)s. لەوانەیە پێویستت بە تۆمارکردنی ڕاپۆرتی هەڵە بێت ئەگەر "
+"کێشەکە بەردەوام بوو."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "تکایە لانی زۆر %(num)d فۆرم بنێرە."
+msgstr[1] "تکایە لانی زۆر %(num)d فۆرم بنێرە."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "تکایە لانی کەم %(num)d فۆرم بنێرە."
+msgstr[1] "تکایە لانی کەم %(num)d فۆرم بنێرە."
+
+msgid "Order"
+msgstr "ڕیز"
+
+msgid "Delete"
+msgstr "سڕینەوە"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "تکایە داتا دووبارەکراوەکان چاکبکەرەوە بۆ %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"تکایە ئەو داتا دووبارەکراوەکانە چاکبکەرەوە بۆ %(field)s، کە دەبێت بێهاوتابن."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"تکایە ئەو داتا دووبارەکراوەکان چاکبکەرەوە بۆ %(field_name)s کە دەبێت بێهاوتا "
+"بن بۆ %(lookup)s لە%(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "تکایە بەها دووبارەکانی خوارەوە ڕاست بکەرەوە."
+
+msgid "The inline value did not match the parent instance."
+msgstr "بەهای ناوهێڵ هاوشێوەی نمونەی باوانەکەی نیە."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "هەڵبژاردەی دروست دیاری بکە. هەڵبژاردە لە هەڵبژاردە بەردەستەکان نیە."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” بەهایەکی دروست نیە."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s نەتوانرا لە ناوچەی کاتدا لێکبدرێتەوە %(current_timezone)s؛ "
+"لەوانەیە ناڕوون بێت یان لەوانەیە بوونی نەبێت."
+
+msgid "Clear"
+msgstr "پاککردنەوە"
+
+msgid "Currently"
+msgstr "ئێستا"
+
+msgid "Change"
+msgstr "گۆڕین"
+
+msgid "Unknown"
+msgstr "نەزانراو"
+
+msgid "Yes"
+msgstr "بەڵێ"
+
+msgid "No"
+msgstr "نەخێر"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "بەڵێ,نەخێر,لەوانەیە"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)dبایت"
+msgstr[1] "%(size)d بایت"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s کب"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s مب"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s گب"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s تب"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s پب"
+
+msgid "p.m."
+msgstr "پ.ن"
+
+msgid "a.m."
+msgstr "پ.ن"
+
+msgid "PM"
+msgstr "د.ن"
+
+msgid "AM"
+msgstr "پ.ن"
+
+msgid "midnight"
+msgstr "نیوەشەو"
+
+msgid "noon"
+msgstr "نیوەڕۆ"
+
+msgid "Monday"
+msgstr "دووشەممە"
+
+msgid "Tuesday"
+msgstr "سێشەممە"
+
+msgid "Wednesday"
+msgstr "چوارشەممە"
+
+msgid "Thursday"
+msgstr "پێنجشەممە"
+
+msgid "Friday"
+msgstr "هەینی"
+
+msgid "Saturday"
+msgstr "شەممە"
+
+msgid "Sunday"
+msgstr "یەکشەممە"
+
+msgid "Mon"
+msgstr "دوو"
+
+msgid "Tue"
+msgstr "سێ"
+
+msgid "Wed"
+msgstr "چوار"
+
+msgid "Thu"
+msgstr "پێنج"
+
+msgid "Fri"
+msgstr "هەین"
+
+msgid "Sat"
+msgstr "شەم"
+
+msgid "Sun"
+msgstr "یەک"
+
+msgid "January"
+msgstr "ڕێبەندان"
+
+msgid "February"
+msgstr "ڕەشەمە"
+
+msgid "March"
+msgstr "نەورۆز"
+
+msgid "April"
+msgstr "گوڵان"
+
+msgid "May"
+msgstr "جۆزەردان"
+
+msgid "June"
+msgstr "پوشپەڕ"
+
+msgid "July"
+msgstr "گەلاوێژ"
+
+msgid "August"
+msgstr "خەرمانان"
+
+msgid "September"
+msgstr "ڕەزبەر"
+
+msgid "October"
+msgstr "گەڵاڕێزان"
+
+msgid "November"
+msgstr "سەرماوەرز"
+
+msgid "December"
+msgstr "بەفرانبار"
+
+msgid "jan"
+msgstr "ڕێبەندان"
+
+msgid "feb"
+msgstr "ڕەشەمە"
+
+msgid "mar"
+msgstr "نەورۆز"
+
+msgid "apr"
+msgstr "گوڵان"
+
+msgid "may"
+msgstr "جۆزەردان"
+
+msgid "jun"
+msgstr "پوشپەڕ"
+
+msgid "jul"
+msgstr "گەلاوێژ"
+
+msgid "aug"
+msgstr "خەرمانان"
+
+msgid "sep"
+msgstr "ڕەزبەر"
+
+msgid "oct"
+msgstr "گەڵاڕێزان"
+
+msgid "nov"
+msgstr "سەرماوەرز"
+
+msgid "dec"
+msgstr "بەفرانبار"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "ڕێبەندان"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "ڕەشەمە"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "نەورۆز"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "گوڵان"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "جۆزەردان"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "پوشپەڕ"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "گەلاوێژ"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "خەرمانان"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "ڕەزبەر"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "گەڵاڕێزان"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "سەرماوەرز"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "بەفرانبار"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "ڕێبەندان"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "ڕەشەمە"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "نەورۆز"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "گوڵان"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "جۆزەردان"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "پوشپەڕ"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "گەلاوێژ"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "خەرمانان"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "ڕەزبەر"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "گەڵاڕێزان"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "سەرماوەرز"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "بەفرانبار"
+
+msgid "This is not a valid IPv6 address."
+msgstr "ئەمە ناونیشانی IPv6 دروست نیە."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s..."
+
+msgid "or"
+msgstr "یان"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr "، "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d ساڵ"
+msgstr[1] "%(num)d ساڵ"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d مانگ"
+msgstr[1] "%(num)d مانگ"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d هەفتە"
+msgstr[1] "%(num)d هەفتە"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d ڕۆژ"
+msgstr[1] "%(num)d ڕۆژ"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d کاتژمێر"
+msgstr[1] "%(num)d کاتژمێر"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d خولەک"
+msgstr[1] "%(num)d خولەک"
+
+msgid "Forbidden"
+msgstr "ڕێپێنەدراو"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "پشتڕاستکردنەوەی CSRF شکستی هێنا. داواکاری هەڵوەشاوەتەوە."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"تۆ ئەم پەیامە دەبینیت چونکە ئەم ماڵپەڕە HTTPS پێویستی بە \"سەردێڕی "
+"ئاماژەدەر\" هەیە کە لەلایەن وێبگەڕەکەتەوە بنێردرێت، بەڵام هیچیان نەنێردراوە. "
+"ئەم سەردێڕە بۆ هۆکاری ئاسایش پێویستە، بۆ دڵنیابوون لەوەی کە وێبگەڕەکەت "
+"لەلایەن لایەنی سێیەمەوە دەستی بەسەردا ناگیرێت."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"ئەگەر ڕێکخستنی شەکرۆکەی ئەم وێبگەڕەت بۆ “Referer” ناچالاککردووە، تکایە "
+"چالاکی بکەرەوە، لانیکەم بۆ ئەم ماڵپەڕە، یان بۆ پەیوەندییەکانی HTTPS، یاخود "
+"بۆ داواکانی \"Same-origin\"."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"ئەگەر تۆ تاگی بەکاردەهێنێت "
+"یان سەرپەڕەی “Referrer-Policy: no-referrer” لەخۆدەگرێت، تکایە بیانسڕەوە. "
+"پاراستنی CSRFەکە پێویستی بە سەرپەڕەی “Referer”هەیە بۆ ئەنجامدانی پشکنینی "
+"گەڕاندنەوەی توندوتۆڵ. ئەگەر خەمی تایبەتمەندیت هەیە، بەدیلەکانی وەکو بۆ بەستنەوەی ماڵپەڕەکانی لایەنی سێیەم."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"تۆ ئەم پەیامە دەبینیت چونکە ئەم ماڵپەڕە پێویستی بە شەکرۆکەی CSRF هەیە لە "
+"کاتی ناردنی فۆڕمەکاندا. ئەم شەکرۆکەیە بۆ هۆکاری ئاسایش پێویستە، بۆ دڵنیابوون "
+"لەوەی کە وێبگەڕەکەت لەلایەن لایەنی سێیەمەوە دەستی بەسەردا ناگیرێت."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"ئەگەر ڕێکخستنی شەکرۆکەی ئەم وێبگەڕەت ناچالاککردووە، تکایە چالاکی بکەرەوە، "
+"لانیکەم بۆ ئەم ماڵپەڕە، یان بۆ داواکانی \"Same-origin\""
+
+msgid "More information is available with DEBUG=True."
+msgstr "زانیاریی زیاتر بەردەستە لەگەڵ DEBUG=True."
+
+msgid "No year specified"
+msgstr "هیچ ساڵێک دیاری نەکراوە"
+
+msgid "Date out of range"
+msgstr "بەروار لە دەرەوەی بواردایە"
+
+msgid "No month specified"
+msgstr "هیچ مانگێک دیاری نەکراوە"
+
+msgid "No day specified"
+msgstr "هیچ ڕۆژێک دیاری نەکراوە"
+
+msgid "No week specified"
+msgstr "هیچ حەفتەیەک دیاری نەکراوە"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "هیچ %(verbose_name_plural)s بەردەست نییە"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"لەداهاتوودا %(verbose_name_plural)s بەردەست نیە چونکە %(class_name)s."
+"allow_future چەوتە."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "ڕیزبەندی بەروار نادروستە “%(datestr)s” شێوازی “%(format)s” پێ بدە"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "هیچ %(verbose_name)s هاوتای داواکارییەکە نیە"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "لاپەڕە “کۆتا” نییە، هەروەها ناتوانرێت بگۆڕدرێت بۆ ژمارەی تەواو."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "لاپەڕەی نادروستە (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "لیستی بەتاڵ و “%(class_name)s.allow_empty” چەوتە."
+
+msgid "Directory indexes are not allowed here."
+msgstr "لێرەدا نوانەی بوخچەکان ڕێگەپێدراو نیە."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” بوونی نیە"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "نوانەی %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "دامەزراندن بەسەرکەوتوویی کاریکرد! پیرۆزە!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"سەیری تێبینیەکانی بڵاوکردنەوە بکە بۆ جانگۆی "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"ئەم لاپەڕەیە دەبینیت چونکە DEBUG=True لەناو پەڕگەی ڕێکخستنەکانتە و بۆ هیچ URLێک "
+"ڕێکنەخراوە."
+
+msgid "Django Documentation"
+msgstr "بەڵگەنامەکردنی جانگۆ"
+
+msgid "Topics, references, & how-to’s"
+msgstr "بابەتەکان, سەرچاوەکان, & چۆنێتی"
+
+msgid "Tutorial: A Polling App"
+msgstr "فێرکاریی: ئاپێکی ڕاپرسی"
+
+msgid "Get started with Django"
+msgstr "دەستپێبکە لەگەڵ جانگۆ"
+
+msgid "Django Community"
+msgstr "کۆمەڵگەی جانگۆ"
+
+msgid "Connect, get help, or contribute"
+msgstr "پەیوەندی بکە، یارمەتی وەربگرە، یان بەشداری بکە"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..34e955c6
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..96a358c7
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/formats.py
new file mode 100644
index 00000000..162c840d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ckb/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = "j F Y، کاتژمێر G:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "Y/n/j"
+SHORT_DATETIME_FORMAT = "Y/n/j، G:i"
+FIRST_DAY_OF_WEEK = 6
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..95086e3d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.po
new file mode 100644
index 00000000..14f5ef96
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/LC_MESSAGES/django.po
@@ -0,0 +1,1388 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Claude Paroz , 2020
+# Jannis Leidel , 2011
+# Jan Papež , 2012,2024
+# Jiří Podhorecký , 2024
+# Jiří Podhorecký , 2022
+# Jirka Vejrazka , 2011
+# Jiří Podhorecký , 2020
+# Tomáš Ehrlich , 2015
+# Vláďa Macek , 2012-2014
+# Vláďa Macek , 2015-2022
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-05-22 11:46-0300\n"
+"PO-Revision-Date: 2024-10-07 06:49+0000\n"
+"Last-Translator: Jan Papež , 2012,2024\n"
+"Language-Team: Czech (http://app.transifex.com/django/django/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
+"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+
+msgid "Afrikaans"
+msgstr "afrikánsky"
+
+msgid "Arabic"
+msgstr "arabsky"
+
+msgid "Algerian Arabic"
+msgstr "alžírskou arabštinou"
+
+msgid "Asturian"
+msgstr "asturštinou"
+
+msgid "Azerbaijani"
+msgstr "ázerbájdžánsky"
+
+msgid "Bulgarian"
+msgstr "bulharsky"
+
+msgid "Belarusian"
+msgstr "bělorusky"
+
+msgid "Bengali"
+msgstr "bengálsky"
+
+msgid "Breton"
+msgstr "bretonsky"
+
+msgid "Bosnian"
+msgstr "bosensky"
+
+msgid "Catalan"
+msgstr "katalánsky"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Střední kurdština (soranština)"
+
+msgid "Czech"
+msgstr "česky"
+
+msgid "Welsh"
+msgstr "velšsky"
+
+msgid "Danish"
+msgstr "dánsky"
+
+msgid "German"
+msgstr "německy"
+
+msgid "Lower Sorbian"
+msgstr "dolnolužickou srbštinou"
+
+msgid "Greek"
+msgstr "řecky"
+
+msgid "English"
+msgstr "anglicky"
+
+msgid "Australian English"
+msgstr "australskou angličtinou"
+
+msgid "British English"
+msgstr "britskou angličtinou"
+
+msgid "Esperanto"
+msgstr "esperantsky"
+
+msgid "Spanish"
+msgstr "španělsky"
+
+msgid "Argentinian Spanish"
+msgstr "argentinskou španělštinou"
+
+msgid "Colombian Spanish"
+msgstr "kolumbijskou španělštinou"
+
+msgid "Mexican Spanish"
+msgstr "mexickou španělštinou"
+
+msgid "Nicaraguan Spanish"
+msgstr "nikaragujskou španělštinou"
+
+msgid "Venezuelan Spanish"
+msgstr "venezuelskou španělštinou"
+
+msgid "Estonian"
+msgstr "estonsky"
+
+msgid "Basque"
+msgstr "baskicky"
+
+msgid "Persian"
+msgstr "persky"
+
+msgid "Finnish"
+msgstr "finsky"
+
+msgid "French"
+msgstr "francouzsky"
+
+msgid "Frisian"
+msgstr "frísky"
+
+msgid "Irish"
+msgstr "irsky"
+
+msgid "Scottish Gaelic"
+msgstr "skotskou keltštinou"
+
+msgid "Galician"
+msgstr "galicijsky"
+
+msgid "Hebrew"
+msgstr "hebrejsky"
+
+msgid "Hindi"
+msgstr "hindsky"
+
+msgid "Croatian"
+msgstr "chorvatsky"
+
+msgid "Upper Sorbian"
+msgstr "hornolužickou srbštinou"
+
+msgid "Hungarian"
+msgstr "maďarsky"
+
+msgid "Armenian"
+msgstr "arménštinou"
+
+msgid "Interlingua"
+msgstr "interlingua"
+
+msgid "Indonesian"
+msgstr "indonésky"
+
+msgid "Igbo"
+msgstr "igboštinou"
+
+msgid "Ido"
+msgstr "idem"
+
+msgid "Icelandic"
+msgstr "islandsky"
+
+msgid "Italian"
+msgstr "italsky"
+
+msgid "Japanese"
+msgstr "japonsky"
+
+msgid "Georgian"
+msgstr "gruzínštinou"
+
+msgid "Kabyle"
+msgstr "kabylštinou"
+
+msgid "Kazakh"
+msgstr "kazašsky"
+
+msgid "Khmer"
+msgstr "khmersky"
+
+msgid "Kannada"
+msgstr "kannadsky"
+
+msgid "Korean"
+msgstr "korejsky"
+
+msgid "Kyrgyz"
+msgstr "kyrgyzštinou"
+
+msgid "Luxembourgish"
+msgstr "lucembursky"
+
+msgid "Lithuanian"
+msgstr "litevsky"
+
+msgid "Latvian"
+msgstr "lotyšsky"
+
+msgid "Macedonian"
+msgstr "makedonsky"
+
+msgid "Malayalam"
+msgstr "malajálamsky"
+
+msgid "Mongolian"
+msgstr "mongolsky"
+
+msgid "Marathi"
+msgstr "marathi"
+
+msgid "Malay"
+msgstr "malajštinou"
+
+msgid "Burmese"
+msgstr "barmštinou"
+
+msgid "Norwegian Bokmål"
+msgstr "bokmål norštinou"
+
+msgid "Nepali"
+msgstr "nepálsky"
+
+msgid "Dutch"
+msgstr "nizozemsky"
+
+msgid "Norwegian Nynorsk"
+msgstr "norsky (Nynorsk)"
+
+msgid "Ossetic"
+msgstr "osetštinou"
+
+msgid "Punjabi"
+msgstr "paňdžábsky"
+
+msgid "Polish"
+msgstr "polsky"
+
+msgid "Portuguese"
+msgstr "portugalsky"
+
+msgid "Brazilian Portuguese"
+msgstr "brazilskou portugalštinou"
+
+msgid "Romanian"
+msgstr "rumunsky"
+
+msgid "Russian"
+msgstr "rusky"
+
+msgid "Slovak"
+msgstr "slovensky"
+
+msgid "Slovenian"
+msgstr "slovinsky"
+
+msgid "Albanian"
+msgstr "albánsky"
+
+msgid "Serbian"
+msgstr "srbsky"
+
+msgid "Serbian Latin"
+msgstr "srbsky (latinkou)"
+
+msgid "Swedish"
+msgstr "švédsky"
+
+msgid "Swahili"
+msgstr "svahilsky"
+
+msgid "Tamil"
+msgstr "tamilsky"
+
+msgid "Telugu"
+msgstr "telužsky"
+
+msgid "Tajik"
+msgstr "Tádžik"
+
+msgid "Thai"
+msgstr "thajsky"
+
+msgid "Turkmen"
+msgstr "turkmenštinou"
+
+msgid "Turkish"
+msgstr "turecky"
+
+msgid "Tatar"
+msgstr "tatarsky"
+
+msgid "Udmurt"
+msgstr "udmurtsky"
+
+msgid "Uyghur"
+msgstr "Ujgurština"
+
+msgid "Ukrainian"
+msgstr "ukrajinsky"
+
+msgid "Urdu"
+msgstr "urdsky"
+
+msgid "Uzbek"
+msgstr "uzbecky"
+
+msgid "Vietnamese"
+msgstr "vietnamsky"
+
+msgid "Simplified Chinese"
+msgstr "čínsky (zjednodušeně)"
+
+msgid "Traditional Chinese"
+msgstr "čínsky (tradičně)"
+
+msgid "Messages"
+msgstr "Zprávy"
+
+msgid "Site Maps"
+msgstr "Mapy webu"
+
+msgid "Static Files"
+msgstr "Statické soubory"
+
+msgid "Syndication"
+msgstr "Syndikace"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Číslo stránky není celé číslo."
+
+msgid "That page number is less than 1"
+msgstr "Číslo stránky je menší než 1"
+
+msgid "That page contains no results"
+msgstr "Stránka je bez výsledků"
+
+msgid "Enter a valid value."
+msgstr "Zadejte platnou hodnotu."
+
+msgid "Enter a valid domain name."
+msgstr "Zadejte platný název domény."
+
+msgid "Enter a valid URL."
+msgstr "Zadejte platnou adresu URL."
+
+msgid "Enter a valid integer."
+msgstr "Zadejte platné celé číslo."
+
+msgid "Enter a valid email address."
+msgstr "Zadejte platnou e-mailovou adresu."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Vložte platný identifikátor složený pouze z písmen, čísel, podtržítek a "
+"pomlček."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Zadejte platný identifikátor složený pouze z písmen, čísel, podtržítek a "
+"pomlček typu Unicode."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Zadejte platnou %(protocol)s adresu."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 nebo IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Zadejte pouze číslice oddělené čárkami."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Hodnota musí být %(limit_value)s (nyní je %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Hodnota musí být menší nebo rovna %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Hodnota musí být větší nebo rovna %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Ujistěte se, že tato hodnota je násobkem velikosti kroku %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Zajistěte, aby tato hodnota byla %(limit_value)s násobkem velikosti kroku , "
+"počínaje %(offset)s, např. %(offset)s, %(valid_value1)s, %(valid_value2)s, a "
+"tak dále."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Tato hodnota má mít nejméně %(limit_value)d znak (nyní má %(show_value)d)."
+msgstr[1] ""
+"Tato hodnota má mít nejméně %(limit_value)d znaky (nyní má %(show_value)d)."
+msgstr[2] ""
+"Tato hodnota má mít nejméně %(limit_value)d znaku (nyní má %(show_value)d)."
+msgstr[3] ""
+"Tato hodnota má mít nejméně %(limit_value)d znaků (nyní má %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Tato hodnota má mít nejvýše %(limit_value)d znak (nyní má %(show_value)d)."
+msgstr[1] ""
+"Tato hodnota má mít nejvýše %(limit_value)d znaky (nyní má %(show_value)d)."
+msgstr[2] ""
+"Tato hodnota má mít nejvýše %(limit_value)d znaků (nyní má %(show_value)d)."
+msgstr[3] ""
+"Tato hodnota má mít nejvýše %(limit_value)d znaků (nyní má %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Zadejte číslo."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslici."
+msgstr[1] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslice."
+msgstr[2] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslic."
+msgstr[3] "Ujistěte se, že pole neobsahuje celkem více než %(max)s číslic."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Ujistěte se, že pole neobsahuje více než %(max)s desetinné místo."
+msgstr[1] "Ujistěte se, že pole neobsahuje více než %(max)s desetinná místa."
+msgstr[2] "Ujistěte se, že pole neobsahuje více než %(max)s desetinných míst."
+msgstr[3] "Ujistěte se, že pole neobsahuje více než %(max)s desetinných míst."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Ujistěte se, že hodnota neobsahuje více než %(max)s místo před desetinnou "
+"čárkou (tečkou)."
+msgstr[1] ""
+"Ujistěte se, že hodnota neobsahuje více než %(max)s místa před desetinnou "
+"čárkou (tečkou)."
+msgstr[2] ""
+"Ujistěte se, že hodnota neobsahuje více než %(max)s míst před desetinnou "
+"čárkou (tečkou)."
+msgstr[3] ""
+"Ujistěte se, že hodnota neobsahuje více než %(max)s míst před desetinnou "
+"čárkou (tečkou)."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Přípona souboru \"%(extension)s\" není povolena. Povolené jsou tyto: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Nulové znaky nejsou povoleny."
+
+msgid "and"
+msgstr "a"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+"Položka %(model_name)s s touto kombinací hodnot v polích %(field_labels)s "
+"již existuje."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Omezení \"%(name)s\" je porušeno."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Hodnota %(value)r není platná možnost."
+
+msgid "This field cannot be null."
+msgstr "Pole nemůže být null."
+
+msgid "This field cannot be blank."
+msgstr "Pole nemůže být prázdné."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr ""
+"Položka %(model_name)s s touto hodnotou v poli %(field_label)s již existuje."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"Pole %(field_label)s musí být unikátní testem %(lookup_type)s pro pole "
+"%(date_field_label)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Pole typu: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Hodnota \"%(value)s\" musí být buď True nebo False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Hodnota \"%(value)s\" musí být buď True, False nebo None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Pravdivost (buď Ano (True), nebo Ne (False))"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Řetězec (max. %(max_length)s znaků)"
+
+msgid "String (unlimited)"
+msgstr "Řetězec (neomezený)"
+
+msgid "Comma-separated integers"
+msgstr "Celá čísla oddělená čárkou"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr "Hodnota \"%(value)s\" není platné datum. Musí být ve tvaru RRRR-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (RRRR-MM-DD), jde o "
+"neplatné datum."
+
+msgid "Date (without time)"
+msgstr "Datum (bez času)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Hodnota \"%(value)s\" je v neplatném tvaru, který má být RRRR-MM-DD HH:MM[:"
+"SS[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (RRRR-MM-DD HH:MM[:SS[."
+"uuuuuu]][TZ]), jde o neplatné datum a čas."
+
+msgid "Date (with time)"
+msgstr "Datum (s časem)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Hodnota \"%(value)s\" musí být desítkové číslo."
+
+msgid "Decimal number"
+msgstr "Desetinné číslo"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Hodnota \"%(value)s\" je v neplatném tvaru, který má být [DD] [HH:[MM:]]ss[."
+"uuuuuu]."
+
+msgid "Duration"
+msgstr "Doba trvání"
+
+msgid "Email address"
+msgstr "E-mailová adresa"
+
+msgid "File path"
+msgstr "Cesta k souboru"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Hodnota \"%(value)s\" musí být reálné číslo."
+
+msgid "Floating point number"
+msgstr "Číslo s pohyblivou řádovou čárkou"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Hodnota \"%(value)s\" musí být celé číslo."
+
+msgid "Integer"
+msgstr "Celé číslo"
+
+msgid "Big (8 byte) integer"
+msgstr "Velké číslo (8 bajtů)"
+
+msgid "Small integer"
+msgstr "Malé celé číslo"
+
+msgid "IPv4 address"
+msgstr "Adresa IPv4"
+
+msgid "IP address"
+msgstr "Adresa IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Hodnota \"%(value)s\" musí být buď None, True nebo False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Pravdivost (buď Ano (True), Ne (False) nebo Nic (None))"
+
+msgid "Positive big integer"
+msgstr "Velké kladné celé číslo"
+
+msgid "Positive integer"
+msgstr "Kladné celé číslo"
+
+msgid "Positive small integer"
+msgstr "Kladné malé celé číslo"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Identifikátor (nejvýše %(max_length)s znaků)"
+
+msgid "Text"
+msgstr "Text"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Hodnota \"%(value)s\" je v neplatném tvaru, který má být HH:MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Ačkoli hodnota \"%(value)s\" je ve správném tvaru (HH:MM[:ss[.uuuuuu]]), jde "
+"o neplatný čas."
+
+msgid "Time"
+msgstr "Čas"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Přímá binární data"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "\"%(value)s\" není platná hodnota typu UUID."
+
+msgid "Universally unique identifier"
+msgstr "Všeobecně jedinečný identifikátor"
+
+msgid "File"
+msgstr "Soubor"
+
+msgid "Image"
+msgstr "Obrázek"
+
+msgid "A JSON object"
+msgstr "Objekt typu JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Hodnota musí být platná struktura typu JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+"Položka typu %(model)s s hodnotou %(field)s rovnou %(value)r neexistuje."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Cizí klíč (typ určen pomocí souvisejícího pole)"
+
+msgid "One-to-one relationship"
+msgstr "Vazba jedna-jedna"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Vazba z %(from)s do %(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Vazby z %(from)s do %(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Vazba mnoho-mnoho"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?!"
+
+msgid "This field is required."
+msgstr "Toto pole je třeba vyplnit."
+
+msgid "Enter a whole number."
+msgstr "Zadejte celé číslo."
+
+msgid "Enter a valid date."
+msgstr "Zadejte platné datum."
+
+msgid "Enter a valid time."
+msgstr "Zadejte platný čas."
+
+msgid "Enter a valid date/time."
+msgstr "Zadejte platné datum a čas."
+
+msgid "Enter a valid duration."
+msgstr "Zadejte platnou délku trvání."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Počet dní musí být mezi {min_days} a {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Soubor nebyl odeslán. Zkontrolujte parametr \"encoding type\" formuláře."
+
+msgid "No file was submitted."
+msgstr "Žádný soubor nebyl odeslán."
+
+msgid "The submitted file is empty."
+msgstr "Odeslaný soubor je prázdný."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Tento název souboru má mít nejvýše %(max)d znak (nyní má %(length)d)."
+msgstr[1] ""
+"Tento název souboru má mít nejvýše %(max)d znaky (nyní má %(length)d)."
+msgstr[2] ""
+"Tento název souboru má mít nejvýše %(max)d znaku (nyní má %(length)d)."
+msgstr[3] ""
+"Tento název souboru má mít nejvýše %(max)d znaků (nyní má %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Musíte vybrat cestu k souboru nebo vymazat výběr, ne obojí."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Nahrajte platný obrázek. Odeslaný soubor buď nebyl obrázek nebo byl poškozen."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Vyberte platnou možnost, \"%(value)s\" není k dispozici."
+
+msgid "Enter a list of values."
+msgstr "Zadejte seznam hodnot."
+
+msgid "Enter a complete value."
+msgstr "Zadejte úplnou hodnotu."
+
+msgid "Enter a valid UUID."
+msgstr "Zadejte platné UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Zadejte platnou strukturu typu JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Skryté pole %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Data objektu ManagementForm chybí nebo s nimi bylo nedovoleně manipulováno. "
+"Chybějící pole: %(field_names)s. Pokud problém přetrvává, budete možná muset "
+"problém ohlásit."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Odešlete prosím nejvíce %(num)d formulář."
+msgstr[1] "Odešlete prosím nejvíce %(num)d formuláře."
+msgstr[2] "Odešlete prosím nejvíce %(num)d formulářů."
+msgstr[3] "Odešlete prosím nejvíce %(num)d formulářů."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Odešlete prosím alespoň %(num)d formulář."
+msgstr[1] "Odešlete prosím alespoň %(num)d formuláře."
+msgstr[2] "Odešlete prosím alespoň %(num)d formulářů."
+msgstr[3] "Odešlete prosím alespoň %(num)d formulářů."
+
+msgid "Order"
+msgstr "Pořadí"
+
+msgid "Delete"
+msgstr "Odstranit"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Opravte duplicitní data v poli %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Opravte duplicitní data v poli %(field)s, které musí být unikátní."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Opravte duplicitní data v poli %(field_name)s, které musí být unikátní "
+"testem %(lookup)s pole %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Odstraňte duplicitní hodnoty níže."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Hodnota typu inline neodpovídá rodičovské položce."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Vyberte platnou možnost. Tato není k dispozici."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" není platná hodnota."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"Hodnotu %(datetime)s nelze interpretovat v časové zóně %(current_timezone)s; "
+"může být nejednoznačná nebo nemusí existovat."
+
+msgid "Clear"
+msgstr "Zrušit"
+
+msgid "Currently"
+msgstr "Aktuálně"
+
+msgid "Change"
+msgstr "Změnit"
+
+msgid "Unknown"
+msgstr "Neznámé"
+
+msgid "Yes"
+msgstr "Ano"
+
+msgid "No"
+msgstr "Ne"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "ano,ne,možná"
+
+#, 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ů"
+msgstr[3] "%(size)d bajtů"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "odp."
+
+msgid "a.m."
+msgstr "dop."
+
+msgid "PM"
+msgstr "odp."
+
+msgid "AM"
+msgstr "dop."
+
+msgid "midnight"
+msgstr "půlnoc"
+
+msgid "noon"
+msgstr "poledne"
+
+msgid "Monday"
+msgstr "pondělí"
+
+msgid "Tuesday"
+msgstr "úterý"
+
+msgid "Wednesday"
+msgstr "středa"
+
+msgid "Thursday"
+msgstr "čtvrtek"
+
+msgid "Friday"
+msgstr "pátek"
+
+msgid "Saturday"
+msgstr "sobota"
+
+msgid "Sunday"
+msgstr "neděle"
+
+msgid "Mon"
+msgstr "po"
+
+msgid "Tue"
+msgstr "út"
+
+msgid "Wed"
+msgstr "st"
+
+msgid "Thu"
+msgstr "čt"
+
+msgid "Fri"
+msgstr "pá"
+
+msgid "Sat"
+msgstr "so"
+
+msgid "Sun"
+msgstr "ne"
+
+msgid "January"
+msgstr "leden"
+
+msgid "February"
+msgstr "únor"
+
+msgid "March"
+msgstr "březen"
+
+msgid "April"
+msgstr "duben"
+
+msgid "May"
+msgstr "květen"
+
+msgid "June"
+msgstr "červen"
+
+msgid "July"
+msgstr "červenec"
+
+msgid "August"
+msgstr "srpen"
+
+msgid "September"
+msgstr "září"
+
+msgid "October"
+msgstr "říjen"
+
+msgid "November"
+msgstr "listopad"
+
+msgid "December"
+msgstr "prosinec"
+
+msgid "jan"
+msgstr "led"
+
+msgid "feb"
+msgstr "úno"
+
+msgid "mar"
+msgstr "bře"
+
+msgid "apr"
+msgstr "dub"
+
+msgid "may"
+msgstr "kvě"
+
+msgid "jun"
+msgstr "čen"
+
+msgid "jul"
+msgstr "čec"
+
+msgid "aug"
+msgstr "srp"
+
+msgid "sep"
+msgstr "zář"
+
+msgid "oct"
+msgstr "říj"
+
+msgid "nov"
+msgstr "lis"
+
+msgid "dec"
+msgstr "pro"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Led."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Úno."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Bře."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Dub."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Kvě."
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Čer."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Čec."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Srp."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Zář."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Říj."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Lis."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Pro."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "ledna"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "února"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "března"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "dubna"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "května"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "června"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "července"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "srpna"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "září"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "října"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "listopadu"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "prosince"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Toto není platná adresa typu IPv6."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "nebo"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d rok"
+msgstr[1] "%(num)d roky"
+msgstr[2] "%(num)d roku"
+msgstr[3] "%(num)d let"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d měsíc"
+msgstr[1] "%(num)d měsíce"
+msgstr[2] "%(num)d měsíců"
+msgstr[3] "%(num)d měsíců"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d týden"
+msgstr[1] "%(num)d týdny"
+msgstr[2] "%(num)d týdne"
+msgstr[3] "%(num)d týdnů"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d den"
+msgstr[1] "%(num)d dny"
+msgstr[2] "%(num)d dní"
+msgstr[3] "%(num)d dní"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hodina"
+msgstr[1] "%(num)d hodiny"
+msgstr[2] "%(num)d hodiny"
+msgstr[3] "%(num)d hodin"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuta"
+msgstr[1] "%(num)d minuty"
+msgstr[2] "%(num)d minut"
+msgstr[3] "%(num)d minut"
+
+msgid "Forbidden"
+msgstr "Nepřístupné (Forbidden)"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Selhalo ověření typu CSRF. Požadavek byl zadržen."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Tuto zprávu vidíte, protože tento web na protokolu HTTPS vyžaduje, aby váš "
+"prohlížeč zaslal v požadavku záhlaví \"Referer\", k čemuž nedošlo. Záhlaví "
+"je požadováno z bezpečnostních důvodů pro kontrolu toho, že prohlížeče se "
+"nezmocnila třetí strana."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Pokud má váš prohlížeč záhlaví \"Referer\" vypnuté, žádáme vás o jeho "
+"zapnutí, alespoň pro tento web nebo pro spojení typu HTTPS nebo pro "
+"požadavky typu \"stejný původ\" (same origin)."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Pokud používáte značku nebo "
+"záhlaví \"Referrer-Policy: no-referrer\", odeberte je. Ochrana typu CSRF "
+"vyžaduje, aby záhlaví zajišťovalo striktní hlídání refereru. Pokud je pro "
+"vás soukromí důležité, použijte k odkazům na cizí weby alternativní možnosti "
+"jako například ."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Tato zpráva se zobrazuje, protože tento web při odesílání formulářů požaduje "
+"v souboru cookie údaj CSRF, a to z bezpečnostních důvodů, aby se zajistilo, "
+"že se vašeho prohlížeče nezmocnil někdo další."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Pokud má váš prohlížeč soubory cookie vypnuté, žádáme vás o jejich zapnutí, "
+"alespoň pro tento web nebo pro požadavky typu \"stejný původ\" (same origin)."
+
+msgid "More information is available with DEBUG=True."
+msgstr "V případě zapnutí volby DEBUG=True bude k dispozici více informací."
+
+msgid "No year specified"
+msgstr "Nebyl specifikován rok"
+
+msgid "Date out of range"
+msgstr "Datum je mimo rozsah"
+
+msgid "No month specified"
+msgstr "Nebyl specifikován měsíc"
+
+msgid "No day specified"
+msgstr "Nebyl specifikován den"
+
+msgid "No week specified"
+msgstr "Nebyl specifikován týden"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "%(verbose_name_plural)s nejsou k dispozici"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"%(verbose_name_plural)s s budoucím datem nejsou k dipozici protoze "
+"%(class_name)s.allow_future je False"
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Datum \"%(datestr)s\" neodpovídá formátu \"%(format)s\""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Nepodařilo se nalézt žádný objekt %(verbose_name)s"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Požadavek na stránku nemohl být konvertován na celé číslo, ani není \"last\"."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Neplatná stránka (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "List je prázdný a \"%(class_name)s.allow_empty\" je nastaveno na False"
+
+msgid "Directory indexes are not allowed here."
+msgstr "Indexy adresářů zde nejsou povoleny."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "Cesta \"%(path)s\" neexistuje"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Index adresáře %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Instalace proběhla úspěšně, gratulujeme!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Zobrazit poznámky k vydání frameworku Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Tuto zprávu vidíte, protože máte v nastavení Djanga zapnutý vývojový režim "
+"DEBUG=True a zatím nemáte "
+"nastavena žádná URL."
+
+msgid "Django Documentation"
+msgstr "Dokumentace frameworku Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Témata, odkazy & how-to"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutoriál: Hlasovací aplikace"
+
+msgid "Get started with Django"
+msgstr "Začínáme s frameworkem Django"
+
+msgid "Django Community"
+msgstr "Komunita kolem frameworku Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Propojte se, získejte pomoc, podílejte se"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..6dcac86b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..05d06e60
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/formats.py
new file mode 100644
index 00000000..e4a7ab99
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cs/formats.py
@@ -0,0 +1,43 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. E Y"
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = "j. E Y G:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y G:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '05.01.2006'
+ "%d.%m.%y", # '05.01.06'
+ "%d. %m. %Y", # '5. 1. 2006'
+ "%d. %m. %y", # '5. 1. 06'
+ # "%d. %B %Y", # '25. October 2006'
+ # "%d. %b. %Y", # '25. Oct. 2006'
+]
+# Kept ISO formats as one is in first position
+TIME_INPUT_FORMATS = [
+ "%H:%M:%S", # '04:30:59'
+ "%H.%M", # '04.30'
+ "%H:%M", # '04:30'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '05.01.2006 04:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '05.01.2006 04:30:59.000200'
+ "%d.%m.%Y %H.%M", # '05.01.2006 04.30'
+ "%d.%m.%Y %H:%M", # '05.01.2006 04:30'
+ "%d. %m. %Y %H:%M:%S", # '05. 01. 2006 04:30:59'
+ "%d. %m. %Y %H:%M:%S.%f", # '05. 01. 2006 04:30:59.000200'
+ "%d. %m. %Y %H.%M", # '05. 01. 2006 04.30'
+ "%d. %m. %Y %H:%M", # '05. 01. 2006 04:30'
+ "%Y-%m-%d %H.%M", # '2006-01-05 04.30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..ea5b45ce
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po
new file mode 100644
index 00000000..16383ce0
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/LC_MESSAGES/django.po
@@ -0,0 +1,1278 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jannis Leidel , 2011
+# Maredudd ap Gwyndaf , 2012,2014
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: Welsh (http://www.transifex.com/django/django/language/cy/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cy\n"
+"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
+"11) ? 2 : 3;\n"
+
+msgid "Afrikaans"
+msgstr "Affricaneg"
+
+msgid "Arabic"
+msgstr "Arabeg"
+
+msgid "Asturian"
+msgstr "Astwrieg"
+
+msgid "Azerbaijani"
+msgstr "Azerbaijanaidd"
+
+msgid "Bulgarian"
+msgstr "Bwlgareg"
+
+msgid "Belarusian"
+msgstr "Belarwseg"
+
+msgid "Bengali"
+msgstr "Bengaleg"
+
+msgid "Breton"
+msgstr "Llydaweg"
+
+msgid "Bosnian"
+msgstr "Bosnieg"
+
+msgid "Catalan"
+msgstr "Catalaneg"
+
+msgid "Czech"
+msgstr "Tsieceg"
+
+msgid "Welsh"
+msgstr "Cymraeg"
+
+msgid "Danish"
+msgstr "Daneg"
+
+msgid "German"
+msgstr "Almaeneg"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "Groegedd"
+
+msgid "English"
+msgstr "Saesneg"
+
+msgid "Australian English"
+msgstr "Saesneg Awstralia"
+
+msgid "British English"
+msgstr "Saesneg Prydain"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Sbaeneg"
+
+msgid "Argentinian Spanish"
+msgstr "Sbaeneg Ariannin"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "Sbaeneg Mecsico"
+
+msgid "Nicaraguan Spanish"
+msgstr "Sbaeneg Nicaragwa"
+
+msgid "Venezuelan Spanish"
+msgstr "Sbaeneg Feneswela"
+
+msgid "Estonian"
+msgstr "Estoneg"
+
+msgid "Basque"
+msgstr "Basgeg"
+
+msgid "Persian"
+msgstr "Persieg"
+
+msgid "Finnish"
+msgstr "Ffinneg"
+
+msgid "French"
+msgstr "Ffrangeg"
+
+msgid "Frisian"
+msgstr "Ffrisieg"
+
+msgid "Irish"
+msgstr "Gwyddeleg"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "Galisieg"
+
+msgid "Hebrew"
+msgstr "Hebraeg"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croasieg"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "Hwngareg"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indoneseg"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandeg"
+
+msgid "Italian"
+msgstr "Eidaleg"
+
+msgid "Japanese"
+msgstr "Siapanëeg"
+
+msgid "Georgian"
+msgstr "Georgeg"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "Casacstanaidd"
+
+msgid "Khmer"
+msgstr "Chmereg"
+
+msgid "Kannada"
+msgstr "Canadeg"
+
+msgid "Korean"
+msgstr "Corëeg"
+
+msgid "Luxembourgish"
+msgstr "Lwcsembergeg"
+
+msgid "Lithuanian"
+msgstr "Lithwaneg"
+
+msgid "Latvian"
+msgstr "Latfieg"
+
+msgid "Macedonian"
+msgstr "Macedoneg"
+
+msgid "Malayalam"
+msgstr "Malaialam"
+
+msgid "Mongolian"
+msgstr "Mongoleg"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Burmese"
+msgstr "Byrmaneg"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Nepaleg"
+
+msgid "Dutch"
+msgstr "Iseldireg"
+
+msgid "Norwegian Nynorsk"
+msgstr "Ninorsk Norwyeg"
+
+msgid "Ossetic"
+msgstr "Osetieg"
+
+msgid "Punjabi"
+msgstr "Pwnjabi"
+
+msgid "Polish"
+msgstr "Pwyleg"
+
+msgid "Portuguese"
+msgstr "Portiwgaleg"
+
+msgid "Brazilian Portuguese"
+msgstr "Portiwgaleg Brasil"
+
+msgid "Romanian"
+msgstr "Romaneg"
+
+msgid "Russian"
+msgstr "Rwsieg"
+
+msgid "Slovak"
+msgstr "Slofaceg"
+
+msgid "Slovenian"
+msgstr "Slofeneg"
+
+msgid "Albanian"
+msgstr "Albaneg"
+
+msgid "Serbian"
+msgstr "Serbeg"
+
+msgid "Serbian Latin"
+msgstr "Lladin Serbiaidd"
+
+msgid "Swedish"
+msgstr "Swedeg"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telwgw"
+
+msgid "Thai"
+msgstr "Tai"
+
+msgid "Turkish"
+msgstr "Twrceg"
+
+msgid "Tatar"
+msgstr "Tatareg"
+
+msgid "Udmurt"
+msgstr "Wdmwrteg"
+
+msgid "Ukrainian"
+msgstr "Wcreineg"
+
+msgid "Urdu"
+msgstr "Wrdw"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Fietnameg"
+
+msgid "Simplified Chinese"
+msgstr "Tsieinëeg Syml"
+
+msgid "Traditional Chinese"
+msgstr "Tseinëeg Traddodiadol"
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr "Mapiau Safle"
+
+msgid "Static Files"
+msgstr "Ffeiliau Statig"
+
+msgid "Syndication"
+msgstr "Syndicetiad"
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Rhowch werth dilys."
+
+msgid "Enter a valid URL."
+msgstr "Rhowch URL dilys."
+
+msgid "Enter a valid integer."
+msgstr "Rhowch gyfanrif dilys."
+
+msgid "Enter a valid email address."
+msgstr "Rhowch gyfeiriad ebost dilys."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Rhowch gyfeiriad IPv4 dilys."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Rhowch gyfeiriad IPv6 dilys."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Rhowch gyfeiriad IPv4 neu IPv6 dilys."
+
+msgid "Enter only digits separated by commas."
+msgstr "Rhowch ddigidau wedi'i gwahanu gan gomas yn unig."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Sicrhewch taw y gwerth yw %(limit_value)s (%(show_value)s yw ar hyn o bryd)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Sicrhewch fod y gwerth hwn yn fwy neu'n llai na %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Sicrhewch fod y gwerth yn fwy na neu'n gyfartal â %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[1] ""
+"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[2] ""
+"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[3] ""
+"Sicrhewch fod gan y gwerth hwn oleiaf %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[1] ""
+"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[2] ""
+"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+msgstr[3] ""
+"Sicrhewch fod gan y gwerth hwn ddim mwy na %(limit_value)d nod (mae ganddo "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Rhowch rif."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Sicrhewch nad oes mwy nag %(max)s digid i gyd."
+msgstr[1] "Sicrhewch nad oes mwy na %(max)s ddigid i gyd."
+msgstr[2] "Sicrhewch nad oes mwy na %(max)s digid i gyd."
+msgstr[3] "Sicrhewch nad oes mwy na %(max)s digid i gyd."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Sicrhewch nad oes mwy nag %(max)s lle degol."
+msgstr[1] "Sicrhewch nad oes mwy na %(max)s le degol."
+msgstr[2] "Sicrhewch nad oes mwy na %(max)s lle degol."
+msgstr[3] "Sicrhewch nad oes mwy na %(max)s lle degol."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Sicrhewch nad oes mwy nag %(max)s digid cyn y pwynt degol."
+msgstr[1] "Sicrhewch nad oes mwy na %(max)s ddigid cyn y pwynt degol."
+msgstr[2] "Sicrhewch nad oes mwy na %(max)s digid cyn y pwynt degol."
+msgstr[3] "Sicrhewch nad oes mwy na %(max)s digid cyn y pwynt degol."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "a"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Mae %(model_name)s gyda'r %(field_labels)s hyn yn bodoli'n barod."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Nid yw gwerth %(value)r yn ddewis dilys."
+
+msgid "This field cannot be null."
+msgstr "Ni all y maes hwn fod yn 'null'."
+
+msgid "This field cannot be blank."
+msgstr "Ni all y maes hwn fod yn wag."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Mae %(model_name)s gyda'r %(field_label)s hwn yn bodoli'n barod."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Maes o fath: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Boleaidd (Unai True neu False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (hyd at %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Cyfanrifau wedi'u gwahanu gan gomas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Dyddiad (heb amser)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Dyddiad (gydag amser)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Rhif degol"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "Cyfeiriad ebost"
+
+msgid "File path"
+msgstr "Llwybr ffeil"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Rhif pwynt symudol"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "cyfanrif"
+
+msgid "Big (8 byte) integer"
+msgstr "Cyfanrif mawr (8 beit)"
+
+msgid "IPv4 address"
+msgstr "Cyfeiriad IPv4"
+
+msgid "IP address"
+msgstr "cyfeiriad IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boleaidd (Naill ai True, False neu None)"
+
+msgid "Positive integer"
+msgstr "Cyfanrif positif"
+
+msgid "Positive small integer"
+msgstr "Cyfanrif bach positif"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Malwen (hyd at %(max_length)s)"
+
+msgid "Small integer"
+msgstr "Cyfanrif bach"
+
+msgid "Text"
+msgstr "Testun"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Amser"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Data deuol crai"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Ffeil"
+
+msgid "Image"
+msgstr "Delwedd"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Allwedd Estron (math yn ddibynol ar y maes cysylltiedig)"
+
+msgid "One-to-one relationship"
+msgstr "Perthynas un-i-un"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Perthynas llawer-i-lawer"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Mae angen y maes hwn."
+
+msgid "Enter a whole number."
+msgstr "Rhowch cyfanrif."
+
+msgid "Enter a valid date."
+msgstr "Rhif ddyddiad dilys."
+
+msgid "Enter a valid time."
+msgstr "Rhowch amser dilys."
+
+msgid "Enter a valid date/time."
+msgstr "Rhowch ddyddiad/amser dilys."
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ni anfonwyd ffeil. Gwiriwch math yr amgodiad ar y ffurflen."
+
+msgid "No file was submitted."
+msgstr "Ni anfonwyd ffeil."
+
+msgid "The submitted file is empty."
+msgstr "Mae'r ffeil yn wag."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)."
+msgstr[1] ""
+"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)."
+msgstr[2] ""
+"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)."
+msgstr[3] ""
+"Sicrhewch fod gan enw'r ffeil ar y mwyaf %(max)d nod (mae ganddo %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Nail ai cyflwynwych ffeil neu dewisiwch y blwch gwiriad, ond nid y ddau."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Llwythwch ddelwedd dilys. Doedd y ddelwedd a lwythwyd ddim yn ddelwedd "
+"dilys, neu roedd yn ddelwedd llygredig."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Dewiswch ddewisiad dilys. Nid yw %(value)s yn un o'r dewisiadau sydd ar gael."
+
+msgid "Enter a list of values."
+msgstr "Rhowch restr o werthoedd."
+
+msgid "Enter a complete value."
+msgstr "Rhowch werth cyflawn."
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Maes cudd %(name)s) %(error)s"
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr "Mae data ManagementForm ar goll neu mae rhywun wedi ymyrryd ynddo"
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] "Cyflwynwch %d neu lai o ffurflenni."
+msgstr[1] "Cyflwynwch %d neu lai o ffurflenni."
+msgstr[2] "Cyflwynwch %d neu lai o ffurflenni."
+msgstr[3] "Cyflwynwch %d neu lai o ffurflenni."
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] "Cyflwynwch %d neu fwy o ffurflenni."
+msgstr[1] "Cyflwynwch %d neu fwy o ffurflenni."
+msgstr[2] "Cyflwynwch %d neu fwy o ffurflenni."
+msgstr[3] "Cyflwynwch %d neu fwy o ffurflenni."
+
+msgid "Order"
+msgstr "Trefn"
+
+msgid "Delete"
+msgstr "Dileu"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Cywirwch y data dyblyg ar gyfer %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Cywirwch y data dyblyg ar gyfer %(field)s, sydd yn gorfod bod yn unigryw."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Cywirwch y data dyblyg ar gyfer %(field_name)s sydd yn gorfod bod yn unigryw "
+"ar gyfer %(lookup)s yn %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Cywirwch y gwerthoedd dyblyg isod."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Dewiswch ddewisiad dilys. Nid yw'r dewisiad yn un o'r dewisiadau sydd ar "
+"gael."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Clirio"
+
+msgid "Currently"
+msgstr "Ar hyn o bryd"
+
+msgid "Change"
+msgstr "Newid"
+
+msgid "Unknown"
+msgstr "Anhysbys"
+
+msgid "Yes"
+msgstr "Ie"
+
+msgid "No"
+msgstr "Na"
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr "ie,na,efallai"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d beit"
+msgstr[1] "%(size)d beit"
+msgstr[2] "%(size)d beit"
+msgstr[3] "%(size)d beit"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "y.h."
+
+msgid "a.m."
+msgstr "y.b."
+
+msgid "PM"
+msgstr "YH"
+
+msgid "AM"
+msgstr "YB"
+
+msgid "midnight"
+msgstr "canol nos"
+
+msgid "noon"
+msgstr "canol dydd"
+
+msgid "Monday"
+msgstr "Dydd Llun"
+
+msgid "Tuesday"
+msgstr "Dydd Mawrth"
+
+msgid "Wednesday"
+msgstr "Dydd Mercher"
+
+msgid "Thursday"
+msgstr "Dydd Iau"
+
+msgid "Friday"
+msgstr "Dydd Gwener"
+
+msgid "Saturday"
+msgstr "Dydd Sadwrn"
+
+msgid "Sunday"
+msgstr "Dydd Sul"
+
+msgid "Mon"
+msgstr "Llu"
+
+msgid "Tue"
+msgstr "Maw"
+
+msgid "Wed"
+msgstr "Mer"
+
+msgid "Thu"
+msgstr "Iau"
+
+msgid "Fri"
+msgstr "Gwe"
+
+msgid "Sat"
+msgstr "Sad"
+
+msgid "Sun"
+msgstr "Sul"
+
+msgid "January"
+msgstr "Ionawr"
+
+msgid "February"
+msgstr "Chwefror"
+
+msgid "March"
+msgstr "Mawrth"
+
+msgid "April"
+msgstr "Ebrill"
+
+msgid "May"
+msgstr "Mai"
+
+msgid "June"
+msgstr "Mehefin"
+
+msgid "July"
+msgstr "Gorffenaf"
+
+msgid "August"
+msgstr "Awst"
+
+msgid "September"
+msgstr "Medi"
+
+msgid "October"
+msgstr "Hydref"
+
+msgid "November"
+msgstr "Tachwedd"
+
+msgid "December"
+msgstr "Rhagfyr"
+
+msgid "jan"
+msgstr "ion"
+
+msgid "feb"
+msgstr "chw"
+
+msgid "mar"
+msgstr "maw"
+
+msgid "apr"
+msgstr "ebr"
+
+msgid "may"
+msgstr "mai"
+
+msgid "jun"
+msgstr "meh"
+
+msgid "jul"
+msgstr "gor"
+
+msgid "aug"
+msgstr "aws"
+
+msgid "sep"
+msgstr "med"
+
+msgid "oct"
+msgstr "hyd"
+
+msgid "nov"
+msgstr "tach"
+
+msgid "dec"
+msgstr "rhag"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ion."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Chwe."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Mawrth"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Ebrill"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Meh."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Gorff."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Awst"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Medi"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Hydr."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Tach."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Rhag."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Ionawr"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Chwefror"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Mawrth"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Ebrill"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Mehefin"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Gorffenaf"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Awst"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Medi"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Hydref"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Tachwedd"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Rhagfyr"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Nid yw hwn yn gyfeiriad IPv6 dilys."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "neu"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ","
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] "%d blwyddyn"
+msgstr[1] "%d flynedd"
+msgstr[2] "%d blwyddyn"
+msgstr[3] "%d blwyddyn"
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] "%d mis"
+msgstr[1] "%d fis"
+msgstr[2] "%d mis"
+msgstr[3] "%d mis"
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] "%d wythnos"
+msgstr[1] "%d wythnos"
+msgstr[2] "%d wythnos"
+msgstr[3] "%d wythnos"
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "%d diwrnod"
+msgstr[1] "%d ddiwrnod"
+msgstr[2] "%d diwrnod"
+msgstr[3] "%d diwrnod"
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "%d awr"
+msgstr[1] "%d awr"
+msgstr[2] "%d awr"
+msgstr[3] "%d awr"
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "%d munud"
+msgstr[1] "%d funud"
+msgstr[2] "%d munud"
+msgstr[3] "%d munud"
+
+msgid "0 minutes"
+msgstr "0 munud"
+
+msgid "Forbidden"
+msgstr "Gwaharddedig"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Gwirio CSRF wedi methu. Ataliwyd y cais."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Dangosir y neges hwn oherwydd bod angen cwci CSRF ar y safle hwn pan yn "
+"anfon ffurflenni. Mae angen y cwci ar gyfer diogelwch er mwyn sicrhau nad "
+"oes trydydd parti yn herwgipio eich porwr."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr "Mae mwy o wybodaeth ar gael gyda DEBUG=True"
+
+msgid "No year specified"
+msgstr "Dim blwyddyn wedi’i bennu"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "Dim mis wedi’i bennu"
+
+msgid "No day specified"
+msgstr "Dim diwrnod wedi’i bennu"
+
+msgid "No week specified"
+msgstr "Dim wythnos wedi’i bennu"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Dim %(verbose_name_plural)s ar gael"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"%(verbose_name_plural)s i'r dyfodol ddim ar gael oherwydd mae %(class_name)s."
+"allow_future yn 'False'. "
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Ni ganfuwyd %(verbose_name)s yn cydweddu â'r ymholiad"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Tudalen annilys (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Ni ganiateir mynegai cyfeiriaduron yma."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Mynegai %(directory)s"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..d97bb87b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..19583fbc
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/formats.py
new file mode 100644
index 00000000..eaef6a61
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/cy/formats.py
@@ -0,0 +1,33 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y" # '25 Hydref 2006'
+TIME_FORMAT = "P" # '2:30 y.b.'
+DATETIME_FORMAT = "j F Y, P" # '25 Hydref 2006, 2:30 y.b.'
+YEAR_MONTH_FORMAT = "F Y" # 'Hydref 2006'
+MONTH_DAY_FORMAT = "j F" # '25 Hydref'
+SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
+SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 y.b.'
+FIRST_DAY_OF_WEEK = 1 # 'Dydd Llun'
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+ "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
+ "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
+ "%d/%m/%y %H:%M", # '25/10/06 14:30'
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..4037a052
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.po
new file mode 100644
index 00000000..8cfa10ff
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/LC_MESSAGES/django.po
@@ -0,0 +1,1341 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Christian Joergensen , 2012
+# Danni Randeris , 2014
+# Erik Ramsgaard Wognsen , 2020-2025
+# Erik Ramsgaard Wognsen , 2013-2019
+# Finn Gruwier Larsen, 2011
+# Jannis Leidel , 2011
+# jonaskoelker , 2012
+# Mads Chr. Olesen , 2013
+# valberg , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Erik Ramsgaard Wognsen , 2020-2025\n"
+"Language-Team: Danish (http://app.transifex.com/django/django/language/da/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: da\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "afrikaans"
+
+msgid "Arabic"
+msgstr "arabisk"
+
+msgid "Algerian Arabic"
+msgstr "algerisk arabisk"
+
+msgid "Asturian"
+msgstr "Asturisk"
+
+msgid "Azerbaijani"
+msgstr "azerbaidjansk"
+
+msgid "Bulgarian"
+msgstr "bulgarsk"
+
+msgid "Belarusian"
+msgstr "hviderussisk"
+
+msgid "Bengali"
+msgstr "bengalsk"
+
+msgid "Breton"
+msgstr "bretonsk"
+
+msgid "Bosnian"
+msgstr "bosnisk"
+
+msgid "Catalan"
+msgstr "catalansk"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Centralkurdisk (Sorani)"
+
+msgid "Czech"
+msgstr "tjekkisk"
+
+msgid "Welsh"
+msgstr "walisisk"
+
+msgid "Danish"
+msgstr "dansk"
+
+msgid "German"
+msgstr "tysk"
+
+msgid "Lower Sorbian"
+msgstr "nedresorbisk"
+
+msgid "Greek"
+msgstr "græsk"
+
+msgid "English"
+msgstr "engelsk"
+
+msgid "Australian English"
+msgstr "australsk engelsk"
+
+msgid "British English"
+msgstr "britisk engelsk"
+
+msgid "Esperanto"
+msgstr "esperanto"
+
+msgid "Spanish"
+msgstr "spansk"
+
+msgid "Argentinian Spanish"
+msgstr "argentinsk spansk"
+
+msgid "Colombian Spanish"
+msgstr "colombiansk spansk"
+
+msgid "Mexican Spanish"
+msgstr "mexikansk spansk"
+
+msgid "Nicaraguan Spanish"
+msgstr "nicaraguansk spansk"
+
+msgid "Venezuelan Spanish"
+msgstr "venezuelansk spansk"
+
+msgid "Estonian"
+msgstr "estisk"
+
+msgid "Basque"
+msgstr "baskisk"
+
+msgid "Persian"
+msgstr "persisk"
+
+msgid "Finnish"
+msgstr "finsk"
+
+msgid "French"
+msgstr "fransk"
+
+msgid "Frisian"
+msgstr "frisisk"
+
+msgid "Irish"
+msgstr "irsk"
+
+msgid "Scottish Gaelic"
+msgstr "skotsk gælisk"
+
+msgid "Galician"
+msgstr "galicisk"
+
+msgid "Hebrew"
+msgstr "hebraisk"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "kroatisk"
+
+msgid "Upper Sorbian"
+msgstr "øvresorbisk"
+
+msgid "Hungarian"
+msgstr "ungarsk"
+
+msgid "Armenian"
+msgstr "armensk"
+
+msgid "Interlingua"
+msgstr "interlingua"
+
+msgid "Indonesian"
+msgstr "indonesisk"
+
+msgid "Igbo"
+msgstr "igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "islandsk"
+
+msgid "Italian"
+msgstr "italiensk"
+
+msgid "Japanese"
+msgstr "japansk"
+
+msgid "Georgian"
+msgstr "georgisk"
+
+msgid "Kabyle"
+msgstr "kabylsk"
+
+msgid "Kazakh"
+msgstr "kasakhisk"
+
+msgid "Khmer"
+msgstr "khmer"
+
+msgid "Kannada"
+msgstr "kannada"
+
+msgid "Korean"
+msgstr "koreansk"
+
+msgid "Kyrgyz"
+msgstr "kirgisisk"
+
+msgid "Luxembourgish"
+msgstr "luxembourgisk"
+
+msgid "Lithuanian"
+msgstr "litauisk"
+
+msgid "Latvian"
+msgstr "lettisk"
+
+msgid "Macedonian"
+msgstr "makedonsk"
+
+msgid "Malayalam"
+msgstr "malayalam"
+
+msgid "Mongolian"
+msgstr "mongolsk"
+
+msgid "Marathi"
+msgstr "marathi"
+
+msgid "Malay"
+msgstr "malajisk"
+
+msgid "Burmese"
+msgstr "burmesisk"
+
+msgid "Norwegian Bokmål"
+msgstr "norsk bokmål"
+
+msgid "Nepali"
+msgstr "nepalesisk"
+
+msgid "Dutch"
+msgstr "hollandsk"
+
+msgid "Norwegian Nynorsk"
+msgstr "norsk nynorsk"
+
+msgid "Ossetic"
+msgstr "ossetisk"
+
+msgid "Punjabi"
+msgstr "punjabi"
+
+msgid "Polish"
+msgstr "polsk"
+
+msgid "Portuguese"
+msgstr "portugisisk"
+
+msgid "Brazilian Portuguese"
+msgstr "brasiliansk portugisisk"
+
+msgid "Romanian"
+msgstr "rumænsk"
+
+msgid "Russian"
+msgstr "russisk"
+
+msgid "Slovak"
+msgstr "slovakisk"
+
+msgid "Slovenian"
+msgstr "slovensk"
+
+msgid "Albanian"
+msgstr "albansk"
+
+msgid "Serbian"
+msgstr "serbisk"
+
+msgid "Serbian Latin"
+msgstr "serbisk (latin)"
+
+msgid "Swedish"
+msgstr "svensk"
+
+msgid "Swahili"
+msgstr "swahili"
+
+msgid "Tamil"
+msgstr "tamil"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Tajik"
+msgstr "tadsjikisk"
+
+msgid "Thai"
+msgstr "thai"
+
+msgid "Turkmen"
+msgstr "turkmensk"
+
+msgid "Turkish"
+msgstr "tyrkisk"
+
+msgid "Tatar"
+msgstr "tatarisk"
+
+msgid "Udmurt"
+msgstr "udmurtisk"
+
+msgid "Uyghur"
+msgstr "uygurisk"
+
+msgid "Ukrainian"
+msgstr "ukrainsk"
+
+msgid "Urdu"
+msgstr "urdu"
+
+msgid "Uzbek"
+msgstr "usbekisk"
+
+msgid "Vietnamese"
+msgstr "vietnamesisk"
+
+msgid "Simplified Chinese"
+msgstr "forenklet kinesisk"
+
+msgid "Traditional Chinese"
+msgstr "traditionelt kinesisk"
+
+msgid "Messages"
+msgstr "Meddelelser"
+
+msgid "Site Maps"
+msgstr "Site Maps"
+
+msgid "Static Files"
+msgstr "Static Files"
+
+msgid "Syndication"
+msgstr "Syndication"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Det sidetal er ikke et heltal"
+
+msgid "That page number is less than 1"
+msgstr "Det sidetal er mindre end 1"
+
+msgid "That page contains no results"
+msgstr "Den side indeholder ingen resultater"
+
+msgid "Enter a valid value."
+msgstr "Indtast en gyldig værdi."
+
+msgid "Enter a valid domain name."
+msgstr "Indtast et gyldigt domænenavn."
+
+msgid "Enter a valid URL."
+msgstr "Indtast en gyldig URL."
+
+msgid "Enter a valid integer."
+msgstr "Indtast et gyldigt heltal."
+
+msgid "Enter a valid email address."
+msgstr "Indtast en gyldig e-mail-adresse."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Indtast en gyldig “slug” bestående af bogstaver, cifre, understreger eller "
+"bindestreger."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Indtast en gyldig “slug” bestående af Unicode-bogstaver, cifre, understreger "
+"eller bindestreger."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Indtast en gyldig %(protocol)s-adresse."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 eller IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Indtast kun cifre adskilt af kommaer."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Denne værdi skal være %(limit_value)s (den er %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Denne værdi skal være mindre end eller lig %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Denne værdi skal være større end eller lig %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Denne værdi skal være et multiplum af trinstørrelse %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Denne værdi skal være et multiplum af trinstørrelse %(limit_value)s, "
+"startende fra %(offset)s, fx %(offset)s, %(valid_value1)s, %(valid_value2)s, "
+"osv."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Denne værdi skal have mindst %(limit_value)d tegn (den har %(show_value)d)."
+msgstr[1] ""
+"Denne værdi skal have mindst %(limit_value)d tegn (den har %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Denne værdi må højst have %(limit_value)d tegn (den har %(show_value)d)."
+msgstr[1] ""
+"Denne værdi må højst have %(limit_value)d tegn (den har %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Indtast et tal."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Der må maksimalt være %(max)s ciffer i alt."
+msgstr[1] "Der må maksimalt være %(max)s cifre i alt."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Der må maksimalt være %(max)s decimal."
+msgstr[1] "Der må maksimalt være %(max)s decimaler."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Der må maksimalt være %(max)s ciffer før kommaet."
+msgstr[1] "Der må maksimalt være %(max)s cifre før kommaet."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Filendelse “%(extension)s” er ikke tilladt. Tilladte filendelser er: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Null-tegn er ikke tilladte."
+
+msgid "and"
+msgstr "og"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s med dette %(field_labels)s eksisterer allerede."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Begrænsning “%(name)s” er overtrådt."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Værdien %(value)r er ikke et gyldigt valg."
+
+msgid "This field cannot be null."
+msgstr "Dette felt kan ikke være null."
+
+msgid "This field cannot be blank."
+msgstr "Dette felt kan ikke være tomt."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s med dette %(field_label)s eksisterer allerede."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s skal være unik for %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Felt af type: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s”-værdien skal være enten True eller False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "“%(value)s”-værdien skal være enten True, False eller None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolsk (enten True eller False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Streng (op til %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Streng (ubegrænset)"
+
+msgid "Comma-separated integers"
+msgstr "Kommaseparerede heltal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s”-værdien har et ugyldigt datoformat. Den skal være i formatet "
+"ÅÅÅÅ-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s”-værdien har det korrekte format (ÅÅÅÅ-MM-DD) men er en ugyldig "
+"dato."
+
+msgid "Date (without time)"
+msgstr "Dato (uden tid)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet ÅÅÅÅ-MM-"
+"DD TT:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"“%(value)s”-værdien har det korrekte format (ÅÅÅÅ-MM-DD TT:MM[:ss[.uuuuuu]]"
+"[TZ]) men er en ugyldig dato/tid."
+
+msgid "Date (with time)"
+msgstr "Dato (med tid)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s”-værdien skal være et decimaltal."
+
+msgid "Decimal number"
+msgstr "Decimaltal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet [DD] "
+"[[TT:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Varighed"
+
+msgid "Email address"
+msgstr "E-mail-adresse"
+
+msgid "File path"
+msgstr "Sti"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s”-værdien skal være et kommatal."
+
+msgid "Floating point number"
+msgstr "Flydende-komma-tal"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "“%(value)s”-værdien skal være et heltal."
+
+msgid "Integer"
+msgstr "Heltal"
+
+msgid "Big (8 byte) integer"
+msgstr "Stort heltal (8 byte)"
+
+msgid "Small integer"
+msgstr "Lille heltal"
+
+msgid "IPv4 address"
+msgstr "IPv4-adresse"
+
+msgid "IP address"
+msgstr "IP-adresse"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s”-værdien skal være enten None, True eller False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolsk (True, False eller None)"
+
+msgid "Positive big integer"
+msgstr "Positivt stort heltal"
+
+msgid "Positive integer"
+msgstr "Positivt heltal"
+
+msgid "Positive small integer"
+msgstr "Positivt lille heltal"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "\"Slug\" (op til %(max_length)s)"
+
+msgid "Text"
+msgstr "Tekst"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s”-værdien har et ugyldigt format. Den skal være i formatet TT:MM[:"
+"ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s”-værdien har det korrekte format (TT:MM[:ss[.uuuuuu]]) men er et "
+"ugyldigt tidspunkt."
+
+msgid "Time"
+msgstr "Tid"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Rå binære data"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” er ikke et gyldigt UUID."
+
+msgid "Universally unique identifier"
+msgstr "Universelt unik identifikator"
+
+msgid "File"
+msgstr "Fil"
+
+msgid "Image"
+msgstr "Billede"
+
+msgid "A JSON object"
+msgstr "Et JSON-objekt"
+
+msgid "Value must be valid JSON."
+msgstr "Værdien skal være gyldig JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "%(model)s-instans med %(field)s %(value)r er ikke et gyldigt valg."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Fremmednøgle (type bestemt af relateret felt)"
+
+msgid "One-to-one relationship"
+msgstr "En-til-en-relation"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s-relation"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s-relationer"
+
+msgid "Many-to-many relationship"
+msgstr "Mange-til-mange-relation"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Dette felt er påkrævet."
+
+msgid "Enter a whole number."
+msgstr "Indtast et heltal."
+
+msgid "Enter a valid date."
+msgstr "Indtast en gyldig dato."
+
+msgid "Enter a valid time."
+msgstr "Indtast en gyldig tid."
+
+msgid "Enter a valid date/time."
+msgstr "Indtast gyldig dato/tid."
+
+msgid "Enter a valid duration."
+msgstr "Indtast en gyldig varighed."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Antallet af dage skal være mellem {min_days} og {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ingen fil blev indsendt. Kontroller kodningstypen i formularen."
+
+msgid "No file was submitted."
+msgstr "Ingen fil blev indsendt."
+
+msgid "The submitted file is empty."
+msgstr "Den indsendte fil er tom."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] "Dette filnavn må højst have %(max)d tegn (det har %(length)d)."
+msgstr[1] "Dette filnavn må højst have %(max)d tegn (det har %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Du skal enten indsende en fil eller afmarkere afkrydsningsfeltet, ikke begge "
+"dele."
+
+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."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Marker en gyldig valgmulighed. %(value)s er ikke en af de tilgængelige "
+"valgmuligheder."
+
+msgid "Enter a list of values."
+msgstr "Indtast en liste af værdier."
+
+msgid "Enter a complete value."
+msgstr "Indtast en komplet værdi."
+
+msgid "Enter a valid UUID."
+msgstr "Indtast et gyldigt UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Indtast gyldig JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Skjult felt %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"ManagementForm-data mangler eller er blevet pillet ved. Manglende felter: "
+"%(field_names)s. Du kan få behov for at oprette en fejlrapport hvis "
+"problemet varer ved."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Indsend venligst højst %(num)d formular."
+msgstr[1] "Indsend venligst højst %(num)d formularer."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Indsend venligst mindst %(num)d formular."
+msgstr[1] "Indsend venligst mindst %(num)d formularer."
+
+msgid "Order"
+msgstr "Rækkefølge"
+
+msgid "Delete"
+msgstr "Slet"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Ret venligst duplikerede data for %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Ret venligst de duplikerede data for %(field)s, som skal være unik."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Ret venligst de duplikerede data for %(field_name)s, som skal være unik for "
+"%(lookup)s i %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Ret venligst de duplikerede data herunder."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Den indlejrede værdi passede ikke med forældreinstansen."
+
+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."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” er ikke en gyldig værdi."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s kunne ikke fortolkes i tidszonen %(current_timezone)s; den kan "
+"være tvetydig eller den eksisterer måske ikke."
+
+msgid "Clear"
+msgstr "Afmarkér"
+
+msgid "Currently"
+msgstr "Aktuelt"
+
+msgid "Change"
+msgstr "Ret"
+
+msgid "Unknown"
+msgstr "Ukendt"
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "No"
+msgstr "Nej"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "ja,nej,måske"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "midnat"
+
+msgid "noon"
+msgstr "middag"
+
+msgid "Monday"
+msgstr "mandag"
+
+msgid "Tuesday"
+msgstr "tirsdag"
+
+msgid "Wednesday"
+msgstr "onsdag"
+
+msgid "Thursday"
+msgstr "torsdag"
+
+msgid "Friday"
+msgstr "fredag"
+
+msgid "Saturday"
+msgstr "lørdag"
+
+msgid "Sunday"
+msgstr "søndag"
+
+msgid "Mon"
+msgstr "man"
+
+msgid "Tue"
+msgstr "tir"
+
+msgid "Wed"
+msgstr "ons"
+
+msgid "Thu"
+msgstr "tor"
+
+msgid "Fri"
+msgstr "fre"
+
+msgid "Sat"
+msgstr "lør"
+
+msgid "Sun"
+msgstr "søn"
+
+msgid "January"
+msgstr "januar"
+
+msgid "February"
+msgstr "februar"
+
+msgid "March"
+msgstr "marts"
+
+msgid "April"
+msgstr "april"
+
+msgid "May"
+msgstr "maj"
+
+msgid "June"
+msgstr "juni"
+
+msgid "July"
+msgstr "juli"
+
+msgid "August"
+msgstr "august"
+
+msgid "September"
+msgstr "september"
+
+msgid "October"
+msgstr "oktober"
+
+msgid "November"
+msgstr "november"
+
+msgid "December"
+msgstr "december"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "maj"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aug"
+
+msgid "sep"
+msgstr "sept"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "marts"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "april"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "maj"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "juni"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "juli"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "januar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "februar"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "marts"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "april"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "maj"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "juni"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "juli"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "august"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "september"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "oktober"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "november"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "december"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Dette er ikke en gyldig IPv6-adresse."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "eller"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d år"
+msgstr[1] "%(num)d år"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d måned"
+msgstr[1] "%(num)d måneder"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d uge"
+msgstr[1] "%(num)d uger"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d dag"
+msgstr[1] "%(num)d dage"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d time"
+msgstr[1] "%(num)d timer"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minut"
+msgstr[1] "%(num)d minutter"
+
+msgid "Forbidden"
+msgstr "Forbudt"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-verifikationen mislykkedes. Forespørgslen blev afbrudt."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Du ser denne besked fordi denne HTTPS-webside kræver at din browser sender "
+"en “Referer header”, som ikke blev sendt. Denne header er påkrævet af "
+"sikkerhedsmæssige grunde for at sikre at din browser ikke bliver kapret af "
+"tredjepart."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Hvis du har opsat din browser til ikke at sende “Referer” headere, beder vi "
+"dig slå dem til igen, i hvert fald for denne webside, eller for HTTPS-"
+"forbindelser, eller for “same-origin”-forespørgsler."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Hvis du bruger tagget eller "
+"inkluderer headeren “Referrer-Policy: no-referrer”, så fjern dem venligst. "
+"CSRF-beskyttelsen afhænger af at “Referer”-headeren udfører stringent "
+"referer-kontrol. Hvis du er bekymret om privatliv, så brug alternativer så "
+"som for links til tredjepartswebsider."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Du ser denne besked fordi denne webside kræver en CSRF-cookie, når du sender "
+"formularer. Denne cookie er påkrævet af sikkerhedsmæssige grunde for at "
+"sikre at din browser ikke bliver kapret af tredjepart."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Hvis du har slået cookies fra i din browser, beder vi dig slå dem til igen, "
+"i hvert fald for denne webside, eller for “same-origin”-forespørgsler."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Mere information er tilgængeligt med DEBUG=True."
+
+msgid "No year specified"
+msgstr "Intet år specificeret"
+
+msgid "Date out of range"
+msgstr "Dato uden for rækkevidde"
+
+msgid "No month specified"
+msgstr "Ingen måned specificeret"
+
+msgid "No day specified"
+msgstr "Ingen dag specificeret"
+
+msgid "No week specified"
+msgstr "Ingen uge specificeret"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Ingen %(verbose_name_plural)s til rådighed"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Fremtidige %(verbose_name_plural)s ikke tilgængelige, fordi %(class_name)s ."
+"allow_future er falsk."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Ugyldig datostreng “%(datestr)s” givet format “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Ingen %(verbose_name)s fundet matcher forespørgslen"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Side er ikke “sidste”, og kan heller ikke konverteres til en int."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Ugyldig side (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Tom liste og “%(class_name)s.allow_empty” er falsk."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Mappeindekser er ikke tilladte her"
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” eksisterer ikke"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Indeks for %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Installationen virkede! Tillykke!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Vis udgivelsesnoter for Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Du ser denne side fordi du har DEBUG=True i din settings-fil og ikke har opsat nogen "
+"URL'er."
+
+msgid "Django Documentation"
+msgstr "Django-dokumentation"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Emner, referencer & how-to’s"
+
+msgid "Tutorial: A Polling App"
+msgstr "Gennemgang: En afstemnings-app"
+
+msgid "Get started with Django"
+msgstr "Kom i gang med Django"
+
+msgid "Django Community"
+msgstr "Django-fællesskabet"
+
+msgid "Connect, get help, or contribute"
+msgstr "Forbind, få hjælp eller bidrag"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..04110d25
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..f825e0dd
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/formats.py
new file mode 100644
index 00000000..58292084
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/da/formats.py
@@ -0,0 +1,26 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j. F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..a1b8cbce
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.po
new file mode 100644
index 00000000..6c7ebbcf
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/LC_MESSAGES/django.po
@@ -0,0 +1,1369 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# André Hagenbruch, 2011-2012
+# Florian Apolloner , 2011
+# Daniel Roschka, 2016
+# Florian Apolloner , 2018,2020-2023
+# jnns, 2011,2013
+# Jannis Leidel , 2013-2018,2020
+# jnns, 2016
+# Markus Holtermann , 2023
+# Markus Holtermann , 2013,2015
+# Raphael Michel , 2021
+# Ronny Vedrilla, 2025
+# Sarah Boyce, 2025
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: Sarah Boyce, 2025\n"
+"Language-Team: German (http://app.transifex.com/django/django/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Arabisch"
+
+msgid "Algerian Arabic"
+msgstr "Algerisches Arabisch"
+
+msgid "Asturian"
+msgstr "Asturisch"
+
+msgid "Azerbaijani"
+msgstr "Aserbaidschanisch"
+
+msgid "Bulgarian"
+msgstr "Bulgarisch"
+
+msgid "Belarusian"
+msgstr "Weißrussisch"
+
+msgid "Bengali"
+msgstr "Bengali"
+
+msgid "Breton"
+msgstr "Bretonisch"
+
+msgid "Bosnian"
+msgstr "Bosnisch"
+
+msgid "Catalan"
+msgstr "Katalanisch"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Zentralkurdisch (Sorani)"
+
+msgid "Czech"
+msgstr "Tschechisch"
+
+msgid "Welsh"
+msgstr "Walisisch"
+
+msgid "Danish"
+msgstr "Dänisch"
+
+msgid "German"
+msgstr "Deutsch"
+
+msgid "Lower Sorbian"
+msgstr "Niedersorbisch"
+
+msgid "Greek"
+msgstr "Griechisch"
+
+msgid "English"
+msgstr "Englisch"
+
+msgid "Australian English"
+msgstr "Australisches Englisch"
+
+msgid "British English"
+msgstr "Britisches Englisch"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spanisch"
+
+msgid "Argentinian Spanish"
+msgstr "Argentinisches Spanisch"
+
+msgid "Colombian Spanish"
+msgstr "Kolumbianisches Spanisch"
+
+msgid "Mexican Spanish"
+msgstr "Mexikanisches Spanisch"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nicaraguanisches Spanisch"
+
+msgid "Venezuelan Spanish"
+msgstr "Venezolanisches Spanisch"
+
+msgid "Estonian"
+msgstr "Estnisch"
+
+msgid "Basque"
+msgstr "Baskisch"
+
+msgid "Persian"
+msgstr "Persisch"
+
+msgid "Finnish"
+msgstr "Finnisch"
+
+msgid "French"
+msgstr "Französisch"
+
+msgid "Frisian"
+msgstr "Friesisch"
+
+msgid "Irish"
+msgstr "Irisch"
+
+msgid "Scottish Gaelic"
+msgstr "Schottisch-Gälisch"
+
+msgid "Galician"
+msgstr "Galicisch"
+
+msgid "Hebrew"
+msgstr "Hebräisch"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Kroatisch"
+
+msgid "Upper Sorbian"
+msgstr "Obersorbisch"
+
+msgid "Hungarian"
+msgstr "Ungarisch"
+
+msgid "Armenian"
+msgstr "Armenisch"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesisch"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Isländisch"
+
+msgid "Italian"
+msgstr "Italienisch"
+
+msgid "Japanese"
+msgstr "Japanisch"
+
+msgid "Georgian"
+msgstr "Georgisch"
+
+msgid "Kabyle"
+msgstr "Kabylisch"
+
+msgid "Kazakh"
+msgstr "Kasachisch"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Koreanisch"
+
+msgid "Kyrgyz"
+msgstr "Kirgisisch"
+
+msgid "Luxembourgish"
+msgstr "Luxemburgisch"
+
+msgid "Lithuanian"
+msgstr "Litauisch"
+
+msgid "Latvian"
+msgstr "Lettisch"
+
+msgid "Macedonian"
+msgstr "Mazedonisch"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongolisch"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malaiisch"
+
+msgid "Burmese"
+msgstr "Birmanisch"
+
+msgid "Norwegian Bokmål"
+msgstr "Norwegisch (Bokmål)"
+
+msgid "Nepali"
+msgstr "Nepali"
+
+msgid "Dutch"
+msgstr "Niederländisch"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norwegisch (Nynorsk)"
+
+msgid "Ossetic"
+msgstr "Ossetisch"
+
+msgid "Punjabi"
+msgstr "Panjabi"
+
+msgid "Polish"
+msgstr "Polnisch"
+
+msgid "Portuguese"
+msgstr "Portugiesisch"
+
+msgid "Brazilian Portuguese"
+msgstr "Brasilianisches Portugiesisch"
+
+msgid "Romanian"
+msgstr "Rumänisch"
+
+msgid "Russian"
+msgstr "Russisch"
+
+msgid "Slovak"
+msgstr "Slowakisch"
+
+msgid "Slovenian"
+msgstr "Slowenisch"
+
+msgid "Albanian"
+msgstr "Albanisch"
+
+msgid "Serbian"
+msgstr "Serbisch"
+
+msgid "Serbian Latin"
+msgstr "Serbisch (Latein)"
+
+msgid "Swedish"
+msgstr "Schwedisch"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamilisch"
+
+msgid "Telugu"
+msgstr "Telugisch"
+
+msgid "Tajik"
+msgstr "Tadschikisch"
+
+msgid "Thai"
+msgstr "Thailändisch"
+
+msgid "Turkmen"
+msgstr "Turkmenisch"
+
+msgid "Turkish"
+msgstr "Türkisch"
+
+msgid "Tatar"
+msgstr "Tatarisch"
+
+msgid "Udmurt"
+msgstr "Udmurtisch"
+
+msgid "Uyghur"
+msgstr "Uigurisch"
+
+msgid "Ukrainian"
+msgstr "Ukrainisch"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Usbekisch"
+
+msgid "Vietnamese"
+msgstr "Vietnamesisch"
+
+msgid "Simplified Chinese"
+msgstr "Vereinfachtes Chinesisch"
+
+msgid "Traditional Chinese"
+msgstr "Traditionelles Chinesisch"
+
+msgid "Messages"
+msgstr "Mitteilungen"
+
+msgid "Site Maps"
+msgstr "Sitemaps"
+
+msgid "Static Files"
+msgstr "Statische Dateien"
+
+msgid "Syndication"
+msgstr "Syndication"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Diese Seitennummer ist keine Ganzzahl"
+
+msgid "That page number is less than 1"
+msgstr "Diese Seitennummer ist kleiner als 1"
+
+msgid "That page contains no results"
+msgstr "Diese Seite enthält keine Ergebnisse"
+
+msgid "Enter a valid value."
+msgstr "Bitte einen gültigen Wert eingeben."
+
+msgid "Enter a valid domain name."
+msgstr "Bitte eine gültige Domain eingeben."
+
+msgid "Enter a valid URL."
+msgstr "Bitte eine gültige Adresse eingeben."
+
+msgid "Enter a valid integer."
+msgstr "Bitte eine gültige Ganzzahl eingeben."
+
+msgid "Enter a valid email address."
+msgstr "Bitte gültige E-Mail-Adresse eingeben."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+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."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Bitte ein gültiges Kürzel eingeben, bestehend aus Buchstaben (Unicode), "
+"Ziffern, Unter- und Bindestrichen."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Bitte eine gültige %(protocol)s-Adresse eingeben."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 oder IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Bitte nur durch Komma getrennte Ziffern eingeben."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Bitte sicherstellen, dass der Wert %(limit_value)s ist. (Er ist "
+"%(show_value)s.)"
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Dieser Wert muss kleiner oder gleich %(limit_value)s sein."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Dieser Wert muss größer oder gleich %(limit_value)s sein."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Dieser Wert muss ein Vielfaches von %(limit_value)s sein."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Dieser Wert muss ein Vielfaches von %(limit_value)s sein und bei %(offset)s "
+"beginnen, z.B. %(offset)s, %(valid_value1)s, %(valid_value2)s, und so weiter."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Wert aus mindestens %(limit_value)d Zeichen "
+"besteht. (Er besteht aus %(show_value)d Zeichen.)"
+msgstr[1] ""
+"Bitte sicherstellen, dass der Wert aus mindestens %(limit_value)d Zeichen "
+"besteht. (Er besteht aus %(show_value)d Zeichen.)"
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Wert aus höchstens %(limit_value)d Zeichen "
+"besteht. (Er besteht aus %(show_value)d Zeichen.)"
+msgstr[1] ""
+"Bitte sicherstellen, dass der Wert aus höchstens %(limit_value)d Zeichen "
+"besteht. (Er besteht aus %(show_value)d Zeichen.)"
+
+msgid "Enter a number."
+msgstr "Bitte eine Zahl eingeben."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffer enthält."
+msgstr[1] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffern enthält."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Dezimalstelle enthält."
+msgstr[1] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Dezimalstellen enthält."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffer vor dem Komma "
+"enthält."
+msgstr[1] ""
+"Bitte sicherstellen, dass der Wert höchstens %(max)s Ziffern vor dem Komma "
+"enthält."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Dateiendung „%(extension)s“ ist nicht erlaubt. Erlaubte Dateiendungen sind: "
+"„%(allowed_extensions)s“."
+
+msgid "Null characters are not allowed."
+msgstr "Nullzeichen sind nicht erlaubt."
+
+msgid "and"
+msgstr "und"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+"%(model_name)s mit diesem Wert für das Feld %(field_labels)s existiert "
+"bereits."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Bedingung „%(name)s“ ist nicht erfüllt."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Wert %(value)r ist keine gültige Option."
+
+msgid "This field cannot be null."
+msgstr "Dieses Feld darf nicht null sein."
+
+msgid "This field cannot be blank."
+msgstr "Dieses Feld darf nicht leer sein."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr ""
+"%(model_name)s mit diesem Wert für das Feld %(field_label)s existiert "
+"bereits."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s muss für %(date_field_label)s %(lookup_type)s eindeutig sein."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Feldtyp: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Wert „%(value)s“ muss entweder True oder False sein."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Wert „%(value)s“ muss True, False oder None sein."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolescher Wert (True oder False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Zeichenkette (bis zu %(max_length)s Zeichen)"
+
+msgid "String (unlimited)"
+msgstr "Zeichenkette (unlimitiert)"
+
+msgid "Comma-separated integers"
+msgstr "Kommaseparierte Liste von Ganzzahlen"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Wert „%(value)s“ hat ein ungültiges Datumsformat. Es muss YYYY-MM-DD "
+"entsprechen."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Wert „%(value)s“ hat das korrekte Format (YYYY-MM-DD) aber ein ungültiges "
+"Datum."
+
+msgid "Date (without time)"
+msgstr "Datum (ohne Uhrzeit)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Wert „%(value)s“ hat ein ungültiges Format. Es muss YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] entsprechen."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Wert „%(value)s“ hat das korrekte Format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) aber eine ungültige Zeit-/Datumsangabe."
+
+msgid "Date (with time)"
+msgstr "Datum (mit Uhrzeit)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Wert „%(value)s“ muss eine Dezimalzahl sein."
+
+msgid "Decimal number"
+msgstr "Dezimalzahl"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Wert „%(value)s“ hat ein ungültiges Format. Es muss der Form [DD] [HH:"
+"[MM:]]ss[.uuuuuu] entsprechen."
+
+msgid "Duration"
+msgstr "Zeitspanne"
+
+msgid "Email address"
+msgstr "E-Mail-Adresse"
+
+msgid "File path"
+msgstr "Dateipfad"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Wert „%(value)s“ muss eine Fließkommazahl sein."
+
+msgid "Floating point number"
+msgstr "Gleitkommazahl"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Wert „%(value)s“ muss eine Ganzzahl sein."
+
+msgid "Integer"
+msgstr "Ganzzahl"
+
+msgid "Big (8 byte) integer"
+msgstr "Große Ganzzahl (8 Byte)"
+
+msgid "Small integer"
+msgstr "Kleine Ganzzahl"
+
+msgid "IPv4 address"
+msgstr "IPv4-Adresse"
+
+msgid "IP address"
+msgstr "IP-Adresse"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Wert „%(value)s“ muss entweder None, True oder False sein."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolescher Wert (True, False oder None)"
+
+msgid "Positive big integer"
+msgstr "Positive große Ganzzahl"
+
+msgid "Positive integer"
+msgstr "Positive Ganzzahl"
+
+msgid "Positive small integer"
+msgstr "Positive kleine Ganzzahl"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Kürzel (bis zu %(max_length)s)"
+
+msgid "Text"
+msgstr "Text"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Wert „%(value)s“ hat ein ungültiges Format. Es muss HH:MM[:ss[.uuuuuu]] "
+"entsprechen."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Wert „%(value)s“ hat das korrekte Format (HH:MM[:ss[.uuuuuu]]), aber ist "
+"eine ungültige Zeitangabe."
+
+msgid "Time"
+msgstr "Zeit"
+
+msgid "URL"
+msgstr "Adresse (URL)"
+
+msgid "Raw binary data"
+msgstr "Binärdaten"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "Wert „%(value)s“ ist keine gültige UUID."
+
+msgid "Universally unique identifier"
+msgstr "Universally Unique Identifier"
+
+msgid "File"
+msgstr "Datei"
+
+msgid "Image"
+msgstr "Bild"
+
+msgid "A JSON object"
+msgstr "Ein JSON-Objekt"
+
+msgid "Value must be valid JSON."
+msgstr "Wert muss gültiges JSON sein."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Fremdschlüssel (Typ definiert durch verknüpftes Feld)"
+
+msgid "One-to-one relationship"
+msgstr "1:1-Beziehung"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s-Beziehung"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s-Beziehungen"
+
+msgid "Many-to-many relationship"
+msgstr "n:m-Beziehung"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Dieses Feld ist zwingend erforderlich."
+
+msgid "Enter a whole number."
+msgstr "Bitte eine ganze Zahl eingeben."
+
+msgid "Enter a valid date."
+msgstr "Bitte ein gültiges Datum eingeben."
+
+msgid "Enter a valid time."
+msgstr "Bitte eine gültige Uhrzeit eingeben."
+
+msgid "Enter a valid date/time."
+msgstr "Bitte ein gültiges Datum und Uhrzeit eingeben."
+
+msgid "Enter a valid duration."
+msgstr "Bitte eine gültige Zeitspanne eingeben."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Die Anzahl der Tage muss zwischen {min_days} und {max_days} sein."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Es wurde keine Datei übertragen. Überprüfen Sie das Encoding des Formulars."
+
+msgid "No file was submitted."
+msgstr "Es wurde keine Datei übertragen."
+
+msgid "The submitted file is empty."
+msgstr "Die übertragene Datei ist leer."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Bitte sicherstellen, dass der Dateiname aus höchstens %(max)d Zeichen "
+"besteht. (Er besteht aus %(length)d Zeichen.)"
+msgstr[1] ""
+"Bitte sicherstellen, dass der Dateiname aus höchstens %(max)d Zeichen "
+"besteht. (Er besteht aus %(length)d Zeichen.)"
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Bitte wählen Sie entweder eine Datei aus oder wählen Sie „Löschen“, nicht "
+"beides."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Bitte ein gültiges Bild hochladen. Die hochgeladene Datei ist kein Bild oder "
+"ist defekt."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Bitte eine Liste mit Werten eingeben."
+
+msgid "Enter a complete value."
+msgstr "Bitte einen vollständigen Wert eingeben."
+
+msgid "Enter a valid UUID."
+msgstr "Bitte eine gültige UUID eingeben."
+
+msgid "Enter a valid JSON."
+msgstr "Bitte ein gültiges JSON-Objekt eingeben."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Verstecktes Feld %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Daten für das Management-Formular fehlen oder wurden manipuliert. Fehlende "
+"Felder: %(field_names)s. Bitte erstellen Sie einen Bug-Report falls der "
+"Fehler dauerhaft besteht."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Bitte höchstens %(num)d Forumlar abschicken."
+msgstr[1] "Bitte höchstens %(num)d Formulare abschicken."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Bitte mindestends %(num)d Formular abschicken."
+msgstr[1] "Bitte mindestens %(num)d Formulare abschicken."
+
+msgid "Order"
+msgstr "Reihenfolge"
+
+msgid "Delete"
+msgstr "Löschen"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Bitte die doppelten Daten für %(field)s korrigieren."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Bitte die doppelten Daten für %(field)s korrigieren, das eindeutig sein muss."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Bitte die doppelten Daten für %(field_name)s korrigieren, da es für "
+"%(lookup)s in %(date_field)s eindeutig sein muss."
+
+msgid "Please correct the duplicate values below."
+msgstr "Bitte die unten aufgeführten doppelten Werte korrigieren."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Der Inline-Wert passt nicht zur übergeordneten Instanz."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Bitte eine gültige Auswahl treffen. Dies ist keine gültige Auswahl."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "„%(pk)s“ ist kein gültiger Wert."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s konnte mit der Zeitzone %(current_timezone)s nicht eindeutig "
+"interpretiert werden, da es doppeldeutig oder eventuell inkorrekt ist."
+
+msgid "Clear"
+msgstr "Zurücksetzen"
+
+msgid "Currently"
+msgstr "Derzeit"
+
+msgid "Change"
+msgstr "Ändern"
+
+msgid "Unknown"
+msgstr "Unbekannt"
+
+msgid "Yes"
+msgstr "Ja"
+
+msgid "No"
+msgstr "Nein"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "Ja,Nein,Vielleicht"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d Byte"
+msgstr[1] "%(size)d Bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "nachm."
+
+msgid "a.m."
+msgstr "vorm."
+
+msgid "PM"
+msgstr "nachm."
+
+msgid "AM"
+msgstr "vorm."
+
+msgid "midnight"
+msgstr "Mitternacht"
+
+msgid "noon"
+msgstr "Mittag"
+
+msgid "Monday"
+msgstr "Montag"
+
+msgid "Tuesday"
+msgstr "Dienstag"
+
+msgid "Wednesday"
+msgstr "Mittwoch"
+
+msgid "Thursday"
+msgstr "Donnerstag"
+
+msgid "Friday"
+msgstr "Freitag"
+
+msgid "Saturday"
+msgstr "Samstag"
+
+msgid "Sunday"
+msgstr "Sonntag"
+
+msgid "Mon"
+msgstr "Mo"
+
+msgid "Tue"
+msgstr "Di"
+
+msgid "Wed"
+msgstr "Mi"
+
+msgid "Thu"
+msgstr "Do"
+
+msgid "Fri"
+msgstr "Fr"
+
+msgid "Sat"
+msgstr "Sa"
+
+msgid "Sun"
+msgstr "So"
+
+msgid "January"
+msgstr "Januar"
+
+msgid "February"
+msgstr "Februar"
+
+msgid "March"
+msgstr "März"
+
+msgid "April"
+msgstr "April"
+
+msgid "May"
+msgstr "Mai"
+
+msgid "June"
+msgstr "Juni"
+
+msgid "July"
+msgstr "Juli"
+
+msgid "August"
+msgstr "August"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "Oktober"
+
+msgid "November"
+msgstr "November"
+
+msgid "December"
+msgstr "Dezember"
+
+msgid "jan"
+msgstr "Jan"
+
+msgid "feb"
+msgstr "Feb"
+
+msgid "mar"
+msgstr "Mär"
+
+msgid "apr"
+msgstr "Apr"
+
+msgid "may"
+msgstr "Mai"
+
+msgid "jun"
+msgstr "Jun"
+
+msgid "jul"
+msgstr "Jul"
+
+msgid "aug"
+msgstr "Aug"
+
+msgid "sep"
+msgstr "Sep"
+
+msgid "oct"
+msgstr "Okt"
+
+msgid "nov"
+msgstr "Nov"
+
+msgid "dec"
+msgstr "Dez"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "März"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Juni"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Juli"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dez."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Januar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Februar"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "März"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Juni"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Juli"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "August"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "September"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Oktober"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "November"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Dezember"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Dies ist keine gültige IPv6-Adresse."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "oder"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d Jahr"
+msgstr[1] "%(num)d Jahre"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d Monat"
+msgstr[1] "%(num)d Monate"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d Woche"
+msgstr[1] "%(num)d Wochen"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d Tag"
+msgstr[1] "%(num)d Tage"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d Stunde"
+msgstr[1] "%(num)d Stunden"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d Minute"
+msgstr[1] "%(num)d Minuten"
+
+msgid "Forbidden"
+msgstr "Verboten"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-Verifizierung fehlgeschlagen. Anfrage abgebrochen."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Sie sehen diese Fehlermeldung, da diese HTTPS-Seite einen „Referer“-Header "
+"von Ihrem Webbrowser erwartet, aber keinen erhalten hat. Dieser Header ist "
+"aus Sicherheitsgründen notwendig, um sicherzustellen, dass Ihr Webbrowser "
+"nicht von Dritten missbraucht wird."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Falls Sie Ihren Webbrowser so konfiguriert haben, dass „Referer“-Header "
+"nicht gesendet werden, müssen Sie diese Funktion mindestens für diese Seite, "
+"für sichere HTTPS-Verbindungen oder für „Same-Origin“-Verbindungen "
+"reaktivieren."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Wenn der Tag „“ oder der "
+"„Referrer-Policy: no-referrer“-Header verwendet wird, entfernen Sie sie "
+"bitte. Der „Referer“-Header wird zur korrekten CSRF-Verifizierung benötigt. "
+"Falls es datenschutzrechtliche Gründe gibt, benutzen Sie bitte Alternativen "
+"wie „“ für Links zu Drittseiten."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Sie sehen Diese Nachricht, da diese Seite einen CSRF-Cookie beim Verarbeiten "
+"von Formulardaten benötigt. Dieses Cookie ist aus Sicherheitsgründen "
+"notwendig, um sicherzustellen, dass Ihr Webbrowser nicht von Dritten "
+"missbraucht wird."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Falls Sie Cookies in Ihren Webbrowser deaktiviert haben, müssen Sie sie "
+"mindestens für diese Seite oder für „Same-Origin“-Verbindungen reaktivieren."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Mehr Information ist verfügbar mit DEBUG=True."
+
+msgid "No year specified"
+msgstr "Kein Jahr angegeben"
+
+msgid "Date out of range"
+msgstr "Datum außerhalb des zulässigen Bereichs"
+
+msgid "No month specified"
+msgstr "Kein Monat angegeben"
+
+msgid "No day specified"
+msgstr "Kein Tag angegeben"
+
+msgid "No week specified"
+msgstr "Keine Woche angegeben"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Keine %(verbose_name_plural)s verfügbar"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"In der Zukunft liegende %(verbose_name_plural)s sind nicht verfügbar, da "
+"%(class_name)s.allow_future auf False gesetzt ist."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Ungültiges Datum „%(datestr)s“ für das Format „%(format)s“"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Konnte keine %(verbose_name)s mit diesen Parametern finden."
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Weder ist dies die letzte Seite („last“) noch konnte sie in einen "
+"ganzzahligen Wert umgewandelt werden."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Ungültige Seite (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Leere Liste und „%(class_name)s.allow_empty“ ist False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Dateilisten sind untersagt."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "„%(path)s“ ist nicht vorhanden"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Verzeichnis %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Die Installation war erfolgreich. Herzlichen Glückwunsch!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Versionshinweise für Django "
+"%(version)s anzeigen"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Diese Seite ist sichtbar weil in der Settings-Datei DEBUG = True steht und die URLs noch nicht konfiguriert "
+"sind."
+
+msgid "Django Documentation"
+msgstr "Django-Dokumentation"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Themen, Referenz, & Kurzanleitungen"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: Eine Umfrage-App"
+
+msgid "Get started with Django"
+msgstr "Los geht's mit Django"
+
+msgid "Django Community"
+msgstr "Django-Community"
+
+msgid "Connect, get help, or contribute"
+msgstr "Nimm Kontakt auf, erhalte Hilfe oder arbeite an Django mit"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..e02f2771
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..7f80062f
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/formats.py
new file mode 100644
index 00000000..45953ce2
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de/formats.py
@@ -0,0 +1,29 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j. F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+ "%d.%m.%y", # '25.10.06'
+ # "%d. %B %Y", # '25. October 2006'
+ # "%d. %b. %Y", # '25. Oct. 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..ca63598b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..ae2a1448
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/formats.py
new file mode 100644
index 00000000..bf048462
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/de_CH/formats.py
@@ -0,0 +1,33 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j. F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+ "%d.%m.%y", # '25.10.06'
+ # "%d. %B %Y", # '25. October 2006'
+ # "%d. %b. %Y", # '25. Oct. 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+]
+
+# Swiss number formatting can vary based on context (e.g. Fr. 23.50 vs 22,5 m).
+# Django does not support context-specific formatting and uses generic
+# separators.
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..c7bf58d7
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po
new file mode 100644
index 00000000..2a37c926
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/dsb/LC_MESSAGES/django.po
@@ -0,0 +1,1392 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Michael Wolf , 2016-2025
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Michael Wolf , 2016-2025\n"
+"Language-Team: Lower Sorbian (http://app.transifex.com/django/django/"
+"language/dsb/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: dsb\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
+"n%100==4 ? 2 : 3);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaanšćina"
+
+msgid "Arabic"
+msgstr "Arabšćina"
+
+msgid "Algerian Arabic"
+msgstr "Algeriska arabšćina"
+
+msgid "Asturian"
+msgstr "Asturišćina"
+
+msgid "Azerbaijani"
+msgstr "Azerbajdžanišćina"
+
+msgid "Bulgarian"
+msgstr "Bulgaršćina"
+
+msgid "Belarusian"
+msgstr "Běłorušćina"
+
+msgid "Bengali"
+msgstr "Bengalšćina"
+
+msgid "Breton"
+msgstr "Bretońšćina"
+
+msgid "Bosnian"
+msgstr "Bosnišćina"
+
+msgid "Catalan"
+msgstr "Katalańšćina"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Centralna kurdišćina (Sorani)"
+
+msgid "Czech"
+msgstr "Češćina"
+
+msgid "Welsh"
+msgstr "Kymrišćina"
+
+msgid "Danish"
+msgstr "Dańšćina"
+
+msgid "German"
+msgstr "Nimšćina"
+
+msgid "Lower Sorbian"
+msgstr "Dolnoserbšćina"
+
+msgid "Greek"
+msgstr "Grichišćina"
+
+msgid "English"
+msgstr "Engelšćina"
+
+msgid "Australian English"
+msgstr "Awstralska engelšćina"
+
+msgid "British English"
+msgstr "Britiska engelšćina"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Špańšćina"
+
+msgid "Argentinian Spanish"
+msgstr "Argentinska špańšćina"
+
+msgid "Colombian Spanish"
+msgstr "Kolumbiska špańšćina"
+
+msgid "Mexican Spanish"
+msgstr "Mexikańska špańšćina"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nikaraguaska špańšćina"
+
+msgid "Venezuelan Spanish"
+msgstr "Venezolaniska špańšćina"
+
+msgid "Estonian"
+msgstr "Estnišćina"
+
+msgid "Basque"
+msgstr "Baskišćina"
+
+msgid "Persian"
+msgstr "Persišćina"
+
+msgid "Finnish"
+msgstr "Finšćina"
+
+msgid "French"
+msgstr "Francojšćina"
+
+msgid "Frisian"
+msgstr "Frizišćina"
+
+msgid "Irish"
+msgstr "Iršćina"
+
+msgid "Scottish Gaelic"
+msgstr "Šotiska gelišćina"
+
+msgid "Galician"
+msgstr "Galicišćina"
+
+msgid "Hebrew"
+msgstr "Hebrejšćina"
+
+msgid "Hindi"
+msgstr "Hindišćina"
+
+msgid "Croatian"
+msgstr "Chorwatšćina"
+
+msgid "Upper Sorbian"
+msgstr "Górnoserbšćina"
+
+msgid "Hungarian"
+msgstr "Hungoršćina"
+
+msgid "Armenian"
+msgstr "Armeńšćina"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonešćina"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandšćina"
+
+msgid "Italian"
+msgstr "Italšćina"
+
+msgid "Japanese"
+msgstr "Japańšćina"
+
+msgid "Georgian"
+msgstr "Georgišćina"
+
+msgid "Kabyle"
+msgstr "Kabylšćina"
+
+msgid "Kazakh"
+msgstr "Kazachšćina"
+
+msgid "Khmer"
+msgstr "Rěc Khmerow"
+
+msgid "Kannada"
+msgstr "Kannadišćina"
+
+msgid "Korean"
+msgstr "Korejańšćina"
+
+msgid "Kyrgyz"
+msgstr "Kirgišćina"
+
+msgid "Luxembourgish"
+msgstr "Luxemburgšćina"
+
+msgid "Lithuanian"
+msgstr "Litawšćina"
+
+msgid "Latvian"
+msgstr "Letišćina"
+
+msgid "Macedonian"
+msgstr "Makedońšćina"
+
+msgid "Malayalam"
+msgstr "Malajalam"
+
+msgid "Mongolian"
+msgstr "Mongolšćina"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malayzišćina"
+
+msgid "Burmese"
+msgstr "Myanmaršćina"
+
+msgid "Norwegian Bokmål"
+msgstr "Norwegski Bokmål"
+
+msgid "Nepali"
+msgstr "Nepalšćina"
+
+msgid "Dutch"
+msgstr "¨Nižozemšćina"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norwegski Nynorsk"
+
+msgid "Ossetic"
+msgstr "Osetšćina"
+
+msgid "Punjabi"
+msgstr "Pundžabi"
+
+msgid "Polish"
+msgstr "Pólšćina"
+
+msgid "Portuguese"
+msgstr "Portugišćina"
+
+msgid "Brazilian Portuguese"
+msgstr "Brazilska portugišćina"
+
+msgid "Romanian"
+msgstr "Rumunšćina"
+
+msgid "Russian"
+msgstr "Rušćina"
+
+msgid "Slovak"
+msgstr "Słowakšćina"
+
+msgid "Slovenian"
+msgstr "Słowjeńšćina"
+
+msgid "Albanian"
+msgstr "Albanšćina"
+
+msgid "Serbian"
+msgstr "Serbišćina"
+
+msgid "Serbian Latin"
+msgstr "Serbišćina, łatyńska"
+
+msgid "Swedish"
+msgstr "Šwedšćina"
+
+msgid "Swahili"
+msgstr "Suahelšćina"
+
+msgid "Tamil"
+msgstr "Tamilšćina"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr "Tadźikišćina"
+
+msgid "Thai"
+msgstr "Thaišćina"
+
+msgid "Turkmen"
+msgstr "Turkmeńšćina"
+
+msgid "Turkish"
+msgstr "Turkojšćina"
+
+msgid "Tatar"
+msgstr "Tataršćina"
+
+msgid "Udmurt"
+msgstr "Udmurtšćina"
+
+msgid "Uyghur"
+msgstr "Ujguršćina"
+
+msgid "Ukrainian"
+msgstr "Ukrainšćina"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Uzbekšćina"
+
+msgid "Vietnamese"
+msgstr "Vietnamšćina"
+
+msgid "Simplified Chinese"
+msgstr "Zjadnorjona chinšćina"
+
+msgid "Traditional Chinese"
+msgstr "Tradicionelna chinšćina"
+
+msgid "Messages"
+msgstr "Powěsći"
+
+msgid "Site Maps"
+msgstr "Wopśimjeśowy pśeglěd sedła"
+
+msgid "Static Files"
+msgstr "Statiske dataje"
+
+msgid "Syndication"
+msgstr "Syndikacija"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Toś ten numer boka njejo ceła licba"
+
+msgid "That page number is less than 1"
+msgstr "Numer boka jo mjeńšy ako 1"
+
+msgid "That page contains no results"
+msgstr "Toś ten bok njewopśimujo wuslědki"
+
+msgid "Enter a valid value."
+msgstr "Zapódajśo płaśiwu gódnotu."
+
+msgid "Enter a valid domain name."
+msgstr "Zapódajśo płaśiwe domenowe mě."
+
+msgid "Enter a valid URL."
+msgstr "Zapódajśo płaśiwy URL."
+
+msgid "Enter a valid integer."
+msgstr "Zapódajśo płaśiwu cełu licbu."
+
+msgid "Enter a valid email address."
+msgstr "Zapódajśo płaśiwu e-mailowu adresu."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Zapódajśo płaśiwe „adresowe mě“, kótarež jano wopśimujo pismiki, licby, "
+"pódsmužki abo wězawki."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Zapódajśo płaśiwe „adresowe mě“, kótarež jano wopśimujo unicodowe pismiki, "
+"licby, pódmužki abo wězawki."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Zapódajśo płaśiwu %(protocol)s-adresu."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 abo IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Zapódajśo jano cyfry źělone pśez komy."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Zawěsććo toś tu gódnotu jo %(limit_value)s (jo %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Zawěsććo, až toś ta gódnota jo mjeńša ako abo to samske ako %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Zawěsććo, až toś ta gódnota jo wětša ako abo to samske ako %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Zawěsććo, až toś gódnota jo wjelesere kšacoweje wjelikosći %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Zawěsććo, až toś ta gódnota jo wjele wót kšacoweje wjelikosći "
+"%(limit_value)s, zachopinajucy z %(offset)s, na pś. %(offset)s, "
+"%(valid_value1)s, %(valid_value2)s a tak dalej."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuško (ma "
+"%(show_value)d)."
+msgstr[1] ""
+"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamušce (ma "
+"%(show_value)d)."
+msgstr[2] ""
+"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuška (ma "
+"%(show_value)d)."
+msgstr[3] ""
+"Zawěsććo, až toś ta gódnota ma nanejmjenjej %(limit_value)d znamuškow (ma "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuško (ma "
+"%(show_value)d)."
+msgstr[1] ""
+"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamušce (ma "
+"%(show_value)d)."
+msgstr[2] ""
+"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuška (ma "
+"%(show_value)d)."
+msgstr[3] ""
+"Zawěććo, až toś ta gódnota ma maksimalnje %(limit_value)d znamuškow (ma "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Zapódajśo licbu."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s cyfry dogromady."
+msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s cyfrowu dogromady."
+msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow dogromady."
+msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow dogromady."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s decimalnego městna."
+msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s decimalneju městnowu."
+msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s decimalnych městnow."
+msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s decimalnych městnow."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Zawěsććo, až njejo wěcej ako %(max)s cyfry pśed decimalneju komu."
+msgstr[1] "Zawěsććo, až njejo wěcej ako %(max)s cyfrowu pśed decimalneju komu."
+msgstr[2] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow pśed decimalneju komu."
+msgstr[3] "Zawěsććo, až njejo wěcej ako %(max)s cyfrow pśed decimalneju komu."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Datajowy sufiks „%(extension)s“ njejo dowólony. Dowólone sufikse su: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Znamuška nul njejsu dowólone."
+
+msgid "and"
+msgstr "a"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s z toś tym %(field_labels)s južo eksistěrujo."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Wobranicowanje \"%(name)s\" jo pśestupjone."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Gódnota %(value)r njejo płaśiwa wóleńska móžnosć."
+
+msgid "This field cannot be null."
+msgstr "Toś to pólo njamóžo nul byś."
+
+msgid "This field cannot be blank."
+msgstr "Toś to pólo njamóžo prozne byś."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s z toś tym %(field_label)s južo eksistěrujo."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s musy za %(date_field_label)s %(lookup_type)s jadnorazowy byś."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Typ póla: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Gódnota „%(value)s“ musy pak True pak False byś."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Gódnota „%(value)s“ musy pak True, False pak None byś."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (pak True pak False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Znamuškowy rjeśazk (až %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Znamuškowy rjeśazk (njewobgranicowany)"
+
+msgid "Comma-separated integers"
+msgstr "Pśez komu źělone cełe licby"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Gódnota „%(value)s“ ma njepłaśiwy datumowy format. Musy we formaśe DD.MM."
+"YYYY byś."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Gódnota „%(value)s“ ma korektny format (DD.MM.YYYY), ale jo njepłaśiwy datum."
+
+msgid "Date (without time)"
+msgstr "Datum (bźez casa)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Gódnota „%(value)s“ ma njepłaśiwy format. Musy w formaśe DD.MM.YYYY HH:MM[:"
+"ss[.uuuuuu]][TZ] byś."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Gódnota „%(value)s“ ma korektny format (DD.MM.YYYY HH:MM[:ss[.uuuuuu]][TZ]), "
+"ale jo njepłaśiwy datum/cas."
+
+msgid "Date (with time)"
+msgstr "Datum (z casom)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Gódnota „%(value)s“ musy decimalna licba byś."
+
+msgid "Decimal number"
+msgstr "Decimalna licba"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Gódnota „%(value)s“ ma njepłaśiwy format. Musy we formaśe [DD] "
+"[[HH:]MM:]ss[.uuuuuu] byś."
+
+msgid "Duration"
+msgstr "Traśe"
+
+msgid "Email address"
+msgstr "E-mailowa adresa"
+
+msgid "File path"
+msgstr "Datajowa sćažka"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Gódnota „%(value)s“ musy typ float měś."
+
+msgid "Floating point number"
+msgstr "Licba běžeceje komy"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Gódnota „%(value)s“ musy ceła licba byś."
+
+msgid "Integer"
+msgstr "Integer"
+
+msgid "Big (8 byte) integer"
+msgstr "Big (8 bajtow) integer"
+
+msgid "Small integer"
+msgstr "Mała ceła licba"
+
+msgid "IPv4 address"
+msgstr "IPv4-adresa"
+
+msgid "IP address"
+msgstr "IP-adresa"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Gódnota „%(value)s“ musy pak None, True pak False byś."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (pak True, False pak None)"
+
+msgid "Positive big integer"
+msgstr "Pozitiwna wjelika ceła licba"
+
+msgid "Positive integer"
+msgstr "Pozitiwna ceła licba"
+
+msgid "Positive small integer"
+msgstr "Pozitiwna mała ceła licba"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Adresowe mě (až %(max_length)s)"
+
+msgid "Text"
+msgstr "Tekst"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Gódnota „%(value)s“ ma njepłaśiwy format. Musy w formaśe HH:MM[:ss[."
+"uuuuuu]] byś."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Gódnota „%(value)s“ ma korektny format (HH:MM[:ss[.uuuuuu]]), ale jo "
+"njepłaśiwy cas."
+
+msgid "Time"
+msgstr "Cas"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Gropne binarne daty"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "„%(value)s“ njejo płaśiwy UUID."
+
+msgid "Universally unique identifier"
+msgstr "Uniwerselnje jadnorazowy identifikator"
+
+msgid "File"
+msgstr "Dataja"
+
+msgid "Image"
+msgstr "Woraz"
+
+msgid "A JSON object"
+msgstr "JSON-objekt"
+
+msgid "Value must be valid JSON."
+msgstr "Gódnota musy płaśiwy JSON byś."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "Instanca %(model)s z %(field)s %(value)r njejo płaśiwa wólba."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Cuzy kluc (typ póstaja se pśez wótpowědne pólo)"
+
+msgid "One-to-one relationship"
+msgstr "Póśěg jaden jaden"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Póśěg %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Póśěgi %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Póśěg wjele wjele"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Toś to pólo jo trěbne."
+
+msgid "Enter a whole number."
+msgstr "Zapódajśo cełu licbu."
+
+msgid "Enter a valid date."
+msgstr "Zapódajśo płaśiwy datum."
+
+msgid "Enter a valid time."
+msgstr "Zapódajśo płaśiwy cas."
+
+msgid "Enter a valid date/time."
+msgstr "Zapódajśo płaśiwy datum/cas."
+
+msgid "Enter a valid duration."
+msgstr "Zapódaśe płaśiwe traśe."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Licba dnjow musy mjazy {min_days} a {max_days} byś."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Dataja njejo se wótpósłała. Pśeglědujśo koděrowański typ na formularje. "
+
+msgid "No file was submitted."
+msgstr "Žedna dataja jo se wótpósłała."
+
+msgid "The submitted file is empty."
+msgstr "Wótpósłana dataja jo prozna."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuško (ma "
+"%(length)d)."
+msgstr[1] ""
+"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamušce (ma "
+"%(length)d)."
+msgstr[2] ""
+"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuška (ma "
+"%(length)d)."
+msgstr[3] ""
+"Zawěsććo, až toś to datajowe mě ma maksimalnje %(max)d znamuškow (ma "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Pšosym pak wótpósćelśo dataju pak stajśo kokulku do kontrolnego kašćika, "
+"njecyńśo wobej."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Nagrajśo płaśiwy wobraz. Dataja, kótaruž sćo nagrał, pak njejo wobraz był "
+"pak jo wobškóźony wobraz."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Wubjeŕśo płaśiwu wóleńsku móžnosć. %(value)s njejo jadna z k dispoziciji "
+"stojecych wóleńskich móžnosćow."
+
+msgid "Enter a list of values."
+msgstr "Zapódajśo lisćinu gódnotow."
+
+msgid "Enter a complete value."
+msgstr "Zapódajśo dopołnu gódnotu."
+
+msgid "Enter a valid UUID."
+msgstr "Zapódajśo płaśiwy UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Zapódajśo płaśiwy JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Schowane pólo %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Daty ManagementForm feluju abo su wobškóźone. Felujuce póla: "
+"%(field_names)s. Móžośo zmólkowu rozpšawu pisaś, jolic problem dalej "
+"eksistěrujo."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Pšosym wótposćelśo maksimalnje %(num)d formular."
+msgstr[1] "Pšosym wótposćelśo maksimalnje %(num)d formulara."
+msgstr[2] "Pšosym wótposćelśo maksimalnje %(num)d formulary."
+msgstr[3] "Pšosym wótposćelśo maksimalnje %(num)d formularow."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Pšosym wótposćelśo minimalnje %(num)d formular."
+msgstr[1] "Pšosym wótposćelśo minimalnje %(num)d formulara."
+msgstr[2] "Pšosym wótposćelśo minimalnje %(num)d formulary."
+msgstr[3] "Pšosym wótposćelśo minimalnje %(num)d formularow."
+
+msgid "Order"
+msgstr "Rěd"
+
+msgid "Delete"
+msgstr "Lašowaś"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Pšosym korigěrujśo dwójne daty za %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Pšosym korigěrujśo dwójne daty za %(field)s, kótarež muse jadnorazowe byś."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Pšosym korigěrujśo dwójne daty za %(field_name)s, kótarež muse za %(lookup)s "
+"w %(date_field)s jadnorazowe byś."
+
+msgid "Please correct the duplicate values below."
+msgstr "Pšosym korigěrujśo slědujuce dwójne gódnoty."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Gódnota inline nadrědowanej instance njewótpowědujo."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Wubjeŕśo płaśiwu wóleńsku móžnosć. Toś ta wóleńska móžnosć njejo žedna z "
+"wóleńskich móžnosćow."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "„%(pk)s“ njejo płaśiwa gódnota."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s njedajo se w casowej conje %(current_timezone)s "
+"interpretěrowaś; jo dwójozmysłowy abo snaź njeeksistěrujo."
+
+msgid "Clear"
+msgstr "Lašowaś"
+
+msgid "Currently"
+msgstr "Tuchylu"
+
+msgid "Change"
+msgstr "Změniś"
+
+msgid "Unknown"
+msgstr "Njeznaty"
+
+msgid "Yes"
+msgstr "Jo"
+
+msgid "No"
+msgstr "Ně"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "jo,ně,snaź"
+
+#, 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 bajty"
+msgstr[3] "%(size)d bajtow"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "wótpołdnja"
+
+msgid "a.m."
+msgstr "dopołdnja"
+
+msgid "PM"
+msgstr "wótpołdnja"
+
+msgid "AM"
+msgstr "dopołdnja"
+
+msgid "midnight"
+msgstr "połnoc"
+
+msgid "noon"
+msgstr "połdnjo"
+
+msgid "Monday"
+msgstr "Pónjeźele"
+
+msgid "Tuesday"
+msgstr "Wałtora"
+
+msgid "Wednesday"
+msgstr "Srjoda"
+
+msgid "Thursday"
+msgstr "Stwórtk"
+
+msgid "Friday"
+msgstr "Pětk"
+
+msgid "Saturday"
+msgstr "Sobota"
+
+msgid "Sunday"
+msgstr "Njeźela"
+
+msgid "Mon"
+msgstr "Pón"
+
+msgid "Tue"
+msgstr "Wał"
+
+msgid "Wed"
+msgstr "Srj"
+
+msgid "Thu"
+msgstr "Stw"
+
+msgid "Fri"
+msgstr "Pět"
+
+msgid "Sat"
+msgstr "Sob"
+
+msgid "Sun"
+msgstr "Nje"
+
+msgid "January"
+msgstr "Januar"
+
+msgid "February"
+msgstr "Februar"
+
+msgid "March"
+msgstr "Měrc"
+
+msgid "April"
+msgstr "Apryl"
+
+msgid "May"
+msgstr "Maj"
+
+msgid "June"
+msgstr "Junij"
+
+msgid "July"
+msgstr "Julij"
+
+msgid "August"
+msgstr "Awgust"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "Oktober"
+
+msgid "November"
+msgstr "Nowember"
+
+msgid "December"
+msgstr "December"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "měr"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "maj"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "awg"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "now"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Měrc"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Apryl"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Maj"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junij"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julij"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Awg."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Now."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Januar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Februar"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Měrc"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Apryl"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Maj"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junij"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julij"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Awgust"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "September"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Oktober"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Nowember"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "December"
+
+msgid "This is not a valid IPv6 address."
+msgstr "To njejo płaśiwa IPv6-adresa."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "abo"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d lěto"
+msgstr[1] "%(num)d lěśe"
+msgstr[2] "%(num)d lěta"
+msgstr[3] "%(num)d lět"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mjasec"
+msgstr[1] "%(num)d mjaseca"
+msgstr[2] "%(num)d mjasece"
+msgstr[3] "%(num)dmjasecow"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d tyźeń"
+msgstr[1] "%(num)d tyźenja"
+msgstr[2] "%(num)d tyźenje"
+msgstr[3] "%(num)d tyźenjow"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d źeń "
+msgstr[1] "%(num)d dnja"
+msgstr[2] "%(num)d dny"
+msgstr[3] "%(num)d dnjow"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d góźina"
+msgstr[1] "%(num)d góźinje"
+msgstr[2] "%(num)d góźiny"
+msgstr[3] "%(num)d góźin"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuta"
+msgstr[1] "%(num)d minuśe"
+msgstr[2] "%(num)d minuty"
+msgstr[3] "%(num)d minutow"
+
+msgid "Forbidden"
+msgstr "Zakazany"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-pśeglědanje njejo se raźiło. Napšašowanje jo se pśetergnuło."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Wiźiśo toś tu powěźeńku, dokulaž toś to HTTPS-sedło trjeba \"Referer "
+"header\", aby se pśez waš webwobglědowak słało, ale žedna njejo se pósłała. "
+"Toś ta głowa jo trěbna z pśicynow wěstoty, aby so zawěsćiło, až waš "
+"wobglědowak njekaprujo se wót tśeśich."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Jolic sćo swój wobglědowak tak konfigurěrował, aby se głowy 'Referer' "
+"znjemóžnili, zmóžniśo je pšosym zasej, nanejmjenjej za toś to sedło, za "
+"HTTPS-zwiski abo za napšašowanja 'same-origin'."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Jolic woznamjenje wužywaśo "
+"abo głowu „Referrer-Policy: no-referrer“ zapśimujośo, wótwónoźćo je. CSRF-"
+"šćit pomina se głowu „Referer“, aby striktnu kontrolu referera pśewjasć. "
+"Jolic se wó swóju priwatnosć staraśo, wužywajśo alternatiwy ako za wótkazy k sedłam tśeśich."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Wiźiśo toś tu powěźeńku, dokulaž toś to HTTPS-sedło trjeba CSRF-cookie, aby "
+"formulary wótpósłało. Toś ten cookie jo trěbna z pśicynow wěstoty, aby so "
+"zawěsćiło, až waš wobglědowak njekaprujo se wót tśeśich."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Jolic sćo swój wobglědowak tak konfigurěrował, aby cookieje znjemóžnili, "
+"zmóžniśo je pšosym zasej, nanejmjenjej za toś to sedło abo za napšašowanja "
+"„same-origin“."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Dalšne informacije su k dispoziciji z DEBUG=True."
+
+msgid "No year specified"
+msgstr "Žedno lěto pódane"
+
+msgid "Date out of range"
+msgstr "Datum zwenka wobcerka"
+
+msgid "No month specified"
+msgstr "Žeden mjasec pódany"
+
+msgid "No day specified"
+msgstr "Žeden źeń pódany"
+
+msgid "No week specified"
+msgstr "Žeden tyźeń pódany"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Žedne %(verbose_name_plural)s k dispoziciji"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Pśichodne %(verbose_name_plural)s njejo k dispoziciji, dokulaž "
+"%(class_name)s.allow_future jo False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+"Njepłaśiwy „%(format)s“ za datumowy znamuškowy rjeśazk „%(datestr)s“ pódany"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Žedno %(verbose_name)s namakane, kótarež wótpowědujo napšašowanjeju."
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Bok njejo „last“, ani njedajo se do „int“ konwertěrowaś."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Njepłaśiwy bok (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Prozna lisćina a „%(class_name)s.allow_empty“ jo False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Zapisowe indekse njejsu how dowólone."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "„%(path)s“ njeeksistěrujo"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Indeks %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Instalacija jo była wuspěšna! Gratulacija!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Wersijowe informacije za Django "
+"%(version)s pokazaś"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Wiźiśo toś ten bok, dokulaž DEBUG=True jo w swójej dataji nastajenjow a njejsćo "
+"konfigurěrował URL."
+
+msgid "Django Documentation"
+msgstr "Dokumentacija Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Temy, reference a rozpokazanja"
+
+msgid "Tutorial: A Polling App"
+msgstr "Rozpokazanje: Napšašowańske nałoženje"
+
+msgid "Get started with Django"
+msgstr "Prědne kšace z Django"
+
+msgid "Django Community"
+msgstr "Zgromaźeństwo Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Zwězajśo, wobsarajśo se pomoc abo źěłajśo sobu"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..1b075509
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.po
new file mode 100644
index 00000000..003a36cc
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/LC_MESSAGES/django.po
@@ -0,0 +1,1332 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Apostolis Bessas , 2013
+# Dimitris Glezos , 2011,2013,2017
+# Fotis Athineos , 2021
+# Giannis Meletakis , 2015
+# Jannis Leidel , 2011
+# Nick Mavrakis , 2017-2020
+# Nikolas Demiridis , 2014
+# Nick Mavrakis , 2016
+# Pãnoș , 2014
+# Pãnoș , 2016
+# Serafeim Papastefanos , 2016
+# Stavros Korokithakis , 2014,2016
+# Yorgos Pagles , 2011-2012
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"PO-Revision-Date: 2021-11-18 21:19+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Greek (http://www.transifex.com/django/django/language/el/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Αφρικάνς"
+
+msgid "Arabic"
+msgstr "Αραβικά"
+
+msgid "Algerian Arabic"
+msgstr "Αραβικά Αλγερίας"
+
+msgid "Asturian"
+msgstr "Αστούριας"
+
+msgid "Azerbaijani"
+msgstr "Γλώσσα Αζερμπαϊτζάν"
+
+msgid "Bulgarian"
+msgstr "Βουλγαρικά"
+
+msgid "Belarusian"
+msgstr "Λευκορώσικα"
+
+msgid "Bengali"
+msgstr "Μπενγκάλι"
+
+msgid "Breton"
+msgstr "Βρετονικά"
+
+msgid "Bosnian"
+msgstr "Βοσνιακά"
+
+msgid "Catalan"
+msgstr "Καταλανικά"
+
+msgid "Czech"
+msgstr "Τσέχικα"
+
+msgid "Welsh"
+msgstr "Ουαλικά"
+
+msgid "Danish"
+msgstr "Δανέζικα"
+
+msgid "German"
+msgstr "Γερμανικά"
+
+msgid "Lower Sorbian"
+msgstr "Κάτω Σορβικά"
+
+msgid "Greek"
+msgstr "Ελληνικά"
+
+msgid "English"
+msgstr "Αγγλικά"
+
+msgid "Australian English"
+msgstr "Αγγλικά Αυστραλίας"
+
+msgid "British English"
+msgstr "Αγγλικά Βρετανίας"
+
+msgid "Esperanto"
+msgstr "Εσπεράντο"
+
+msgid "Spanish"
+msgstr "Ισπανικά"
+
+msgid "Argentinian Spanish"
+msgstr "Ισπανικά Αργεντινής"
+
+msgid "Colombian Spanish"
+msgstr "Ισπανικά Κολομβίας"
+
+msgid "Mexican Spanish"
+msgstr "Μεξικανική διάλεκτος Ισπανικών"
+
+msgid "Nicaraguan Spanish"
+msgstr "Ισπανικά Νικαράγουας "
+
+msgid "Venezuelan Spanish"
+msgstr "Ισπανικά Βενεζουέλας"
+
+msgid "Estonian"
+msgstr "Εσθονικά"
+
+msgid "Basque"
+msgstr "Βάσκικα"
+
+msgid "Persian"
+msgstr "Περσικά"
+
+msgid "Finnish"
+msgstr "Φινλανδικά"
+
+msgid "French"
+msgstr "Γαλλικά"
+
+msgid "Frisian"
+msgstr "Frisian"
+
+msgid "Irish"
+msgstr "Ιρλανδικά"
+
+msgid "Scottish Gaelic"
+msgstr "Σκωτσέζικα Γαελικά"
+
+msgid "Galician"
+msgstr "Γαελικά"
+
+msgid "Hebrew"
+msgstr "Εβραϊκά"
+
+msgid "Hindi"
+msgstr "Ινδικά"
+
+msgid "Croatian"
+msgstr "Κροατικά"
+
+msgid "Upper Sorbian"
+msgstr "Άνω Σορβικά"
+
+msgid "Hungarian"
+msgstr "Ουγγρικά"
+
+msgid "Armenian"
+msgstr "Αρμενικά"
+
+msgid "Interlingua"
+msgstr "Ιντερλίνγκουα"
+
+msgid "Indonesian"
+msgstr "Ινδονησιακά"
+
+msgid "Igbo"
+msgstr "Ίγκμπο"
+
+msgid "Ido"
+msgstr "Ίντο"
+
+msgid "Icelandic"
+msgstr "Ισλανδικά"
+
+msgid "Italian"
+msgstr "Ιταλικά"
+
+msgid "Japanese"
+msgstr "Γιαπωνέζικα"
+
+msgid "Georgian"
+msgstr "Γεωργιανά"
+
+msgid "Kabyle"
+msgstr "Kabyle"
+
+msgid "Kazakh"
+msgstr "Καζακστά"
+
+msgid "Khmer"
+msgstr "Χμερ"
+
+msgid "Kannada"
+msgstr "Κανάντα"
+
+msgid "Korean"
+msgstr "Κορεάτικα"
+
+msgid "Kyrgyz"
+msgstr "Κιργιζικά"
+
+msgid "Luxembourgish"
+msgstr "Λουξεμβουργιανά"
+
+msgid "Lithuanian"
+msgstr "Λιθουανικά"
+
+msgid "Latvian"
+msgstr "Λεττονικά"
+
+msgid "Macedonian"
+msgstr "Μακεδονικά"
+
+msgid "Malayalam"
+msgstr "Μαλαγιαλάμ"
+
+msgid "Mongolian"
+msgstr "Μογγολικά"
+
+msgid "Marathi"
+msgstr "Μαράθι"
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "Βιρμανικά"
+
+msgid "Norwegian Bokmål"
+msgstr "Νορβηγικά Μποκμάλ"
+
+msgid "Nepali"
+msgstr "Νεπαλέζικα"
+
+msgid "Dutch"
+msgstr "Ολλανδικά"
+
+msgid "Norwegian Nynorsk"
+msgstr "Νορβηγική διάλεκτος Nynorsk - Νεονορβηγική"
+
+msgid "Ossetic"
+msgstr "Οσσετικά"
+
+msgid "Punjabi"
+msgstr "Πουντζάμπι"
+
+msgid "Polish"
+msgstr "Πολωνικά"
+
+msgid "Portuguese"
+msgstr "Πορτογαλικά"
+
+msgid "Brazilian Portuguese"
+msgstr "Πορτογαλικά - διάλεκτος Βραζιλίας"
+
+msgid "Romanian"
+msgstr "Ρουμανικά"
+
+msgid "Russian"
+msgstr "Ρωσικά"
+
+msgid "Slovak"
+msgstr "Σλοβακικά"
+
+msgid "Slovenian"
+msgstr "Σλοβενικά"
+
+msgid "Albanian"
+msgstr "Αλβανικά"
+
+msgid "Serbian"
+msgstr "Σερβικά"
+
+msgid "Serbian Latin"
+msgstr "Σέρβικα Λατινικά"
+
+msgid "Swedish"
+msgstr "Σουηδικά"
+
+msgid "Swahili"
+msgstr "Σουαχίλι"
+
+msgid "Tamil"
+msgstr "Διάλεκτος Ταμίλ"
+
+msgid "Telugu"
+msgstr "Τελούγκου"
+
+msgid "Tajik"
+msgstr "Τατζικικά"
+
+msgid "Thai"
+msgstr "Ταϊλάνδης"
+
+msgid "Turkmen"
+msgstr "Τουρκμενικά"
+
+msgid "Turkish"
+msgstr "Τουρκικά"
+
+msgid "Tatar"
+msgstr "Ταταρικά"
+
+msgid "Udmurt"
+msgstr "Ουντμουρτικά"
+
+msgid "Ukrainian"
+msgstr "Ουκρανικά"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Ουζμπεκικά"
+
+msgid "Vietnamese"
+msgstr "Βιετναμέζικα"
+
+msgid "Simplified Chinese"
+msgstr "Απλοποιημένα Κινέζικα"
+
+msgid "Traditional Chinese"
+msgstr "Παραδοσιακά Κινέζικα"
+
+msgid "Messages"
+msgstr "Μηνύματα"
+
+msgid "Site Maps"
+msgstr "Χάρτες Ιστότοπου"
+
+msgid "Static Files"
+msgstr "Στατικά Αρχεία"
+
+msgid "Syndication"
+msgstr "Syndication"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr "Ο αριθμός αυτής της σελίδας δεν είναι ακέραιος"
+
+msgid "That page number is less than 1"
+msgstr "Ο αριθμός αυτής της σελίδας είναι μικρότερος του 1"
+
+msgid "That page contains no results"
+msgstr "Η σελίδα αυτή δεν περιέχει αποτελέσματα"
+
+msgid "Enter a valid value."
+msgstr "Εισάγετε μια έγκυρη τιμή."
+
+msgid "Enter a valid URL."
+msgstr "Εισάγετε ένα έγκυρο URL."
+
+msgid "Enter a valid integer."
+msgstr "Εισάγετε έναν έγκυρο ακέραιο."
+
+msgid "Enter a valid email address."
+msgstr "Εισάγετε μια έγκυρη διεύθυνση ηλ. ταχυδρομείου."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Εισάγετε ένα 'slug' που να αποτελείται από γράμματα, αριθμούς, παύλες ή κάτω "
+"παύλες."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Εισάγετε ένα 'slug' που να αποτελείται από Unicode γράμματα, παύλες ή κάτω "
+"παύλες."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Εισάγετε μια έγκυρη IPv4 διεύθυνση."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Εισάγετε μία έγκυρη IPv6 διεύθυνση"
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Εισάγετε μία έγκυρη IPv4 ή IPv6 διεύθυνση"
+
+msgid "Enter only digits separated by commas."
+msgstr "Εισάγετε μόνο ψηφία χωρισμένα με κόμματα."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Βεβαιωθείτε ότι η τιμή είναι %(limit_value)s (η τιμή που καταχωρήσατε είναι "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Βεβαιωθείτε ότι η τιμή είναι μικρότερη ή ίση από %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Βεβαιωθείτε ότι η τιμή είναι μεγαλύτερη ή ίση από %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Βεβαιωθείται πως η τιμή αυτή έχει τουλάχιστον %(limit_value)d χαρακτήρες "
+"(έχει %(show_value)d)."
+msgstr[1] ""
+"Βεβαιωθείτε πως η τιμή έχει τουλάχιστον %(limit_value)d χαρακτήρες (έχει "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Βεβαιωθείται πως η τιμή αυτή έχει τοπολύ %(limit_value)d χαρακτήρες (έχει "
+"%(show_value)d)."
+msgstr[1] ""
+"Βεβαιωθείτε πως η τιμή έχει το πολύ %(limit_value)d χαρακτήρες (έχει "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Εισάγετε έναν αριθμό."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+"Σιγουρευτείτε οτι τα σύνολο των ψηφίων δεν είναι παραπάνω από %(max)s"
+msgstr[1] ""
+"Σιγουρευτείτε οτι τα σύνολο των ψηφίων δεν είναι παραπάνω από %(max)s"
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Σιγουρευτείτε ότι το δεκαδικό ψηφίο δεν είναι παραπάνω από %(max)s."
+msgstr[1] "Σιγουρευτείτε ότι τα δεκαδικά ψηφία δεν είναι παραπάνω από %(max)s."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Βεβαιωθείτε ότι δεν υπάρχουν πάνω από %(max)s ψηφία πριν την υποδιαστολή."
+msgstr[1] ""
+"Βεβαιωθείτε ότι δεν υπάρχουν πάνω από %(max)s ψηφία πριν την υποδιαστολή."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Η επέκταση '%(extension)s' του αρχείου δεν επιτρέπεται. Οι επιτρεπόμενες "
+"επεκτάσεις είναι: '%(allowed_extensions)s'."
+
+msgid "Null characters are not allowed."
+msgstr "Δεν επιτρέπονται null (μηδενικοί) χαρακτήρες"
+
+msgid "and"
+msgstr "και"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s με αυτή την %(field_labels)s υπάρχει ήδη."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Η τιμή %(value)r δεν είναι έγκυρη επιλογή."
+
+msgid "This field cannot be null."
+msgstr "Το πεδίο αυτό δεν μπορεί να είναι μηδενικό (null)."
+
+msgid "This field cannot be blank."
+msgstr "Το πεδίο αυτό δεν μπορεί να είναι κενό."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s με αυτό το %(field_label)s υπάρχει ήδη."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s πρέπει να είναι μοναδική για %(date_field_label)s "
+"%(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Πεδίο τύπου: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Η τιμή '%(value)s' πρέπει να είναι True ή False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Η τιμή '%(value)s' πρέπει να είναι True, False, ή None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Είτε Αληθές ή Ψευδές)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Συμβολοσειρά (μέχρι %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Ακέραιοι χωρισμένοι με κόμματα"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Η τιμή του '%(value)s' έχει μια λανθασμένη μορφή ημερομηνίας. Η ημερομηνία "
+"θα πρέπει να είναι στην μορφή YYYY-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Η τιμή '%(value)s' είναι στην σωστή μορφή (YYYY-MM-DD) αλλά είναι μια "
+"λανθασμένη ημερομηνία."
+
+msgid "Date (without time)"
+msgstr "Ημερομηνία (χωρίς την ώρα)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Η τιμή του '%(value)s' έχει μια λανθασμένη μορφή. Η ημερομηνία/ώρα θα πρέπει "
+"να είναι στην μορφή YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Η τιμή '%(value)s' έχει τη σωστή μορφή (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) "
+"αλλά δεν αντιστοιχεί σε σωστή ημερομηνία και ώρα."
+
+msgid "Date (with time)"
+msgstr "Ημερομηνία (με ώρα)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Η τιμή '%(value)s' πρέπει να είναι δεκαδικός αριθμός."
+
+msgid "Decimal number"
+msgstr "Δεκαδικός αριθμός"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Η τιμή '%(value)s' έχει εσφαλμένη μορφή. Πρέπει να είναι της μορφής [DD] "
+"[[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Διάρκεια"
+
+msgid "Email address"
+msgstr "Ηλεκτρονική διεύθυνση"
+
+msgid "File path"
+msgstr "Τοποθεσία αρχείου"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Η '%(value)s' τιμή πρέπει να είναι δεκαδικός."
+
+msgid "Floating point number"
+msgstr "Αριθμός κινητής υποδιαστολής"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Η τιμή '%(value)s' πρέπει να είναι ακέραιος."
+
+msgid "Integer"
+msgstr "Ακέραιος"
+
+msgid "Big (8 byte) integer"
+msgstr "Μεγάλος ακέραιος - big integer (8 bytes)"
+
+msgid "Small integer"
+msgstr "Μικρός ακέραιος"
+
+msgid "IPv4 address"
+msgstr "Διεύθυνση IPv4"
+
+msgid "IP address"
+msgstr "IP διεύθυνση"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Η τιμή '%(value)s' πρέπει να είναι None, True ή False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Αληθές, Ψευδές, ή τίποτα)"
+
+msgid "Positive big integer"
+msgstr "Μεγάλος θετικός ακέραιος"
+
+msgid "Positive integer"
+msgstr "Θετικός ακέραιος"
+
+msgid "Positive small integer"
+msgstr "Θετικός μικρός ακέραιος"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (μέχρι %(max_length)s)"
+
+msgid "Text"
+msgstr "Κείμενο"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Η τιμή '%(value)s' έχει εσφαλμένη μορφή. Πρέπει να είναι της μορφής HH:MM[:"
+"ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Η τιμή '%(value)s' έχει τη σωστή μορφή (HH:MM[:ss[.uuuuuu]]) αλλά δεν "
+"αντιστοιχή σε σωστή ώρα."
+
+msgid "Time"
+msgstr "Ώρα"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Δυαδικά δεδομένα"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "'%(value)s' δεν είναι ένα έγκυρο UUID."
+
+msgid "Universally unique identifier"
+msgstr "Καθολικά μοναδικό αναγνωριστικό"
+
+msgid "File"
+msgstr "Αρχείο"
+
+msgid "Image"
+msgstr "Εικόνα"
+
+msgid "A JSON object"
+msgstr "Ένα αντικείμενο JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Η τιμή πρέπει να είναι έγκυρο JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+"Το μοντέλο %(model)s με την τιμή %(value)r του πεδίου %(field)s δεν υπάρχει."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Foreign Key (ο τύπος καθορίζεται από το πεδίο του συσχετισμού)"
+
+msgid "One-to-one relationship"
+msgstr "Σχέση ένα-προς-ένα"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "σχέση %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "σχέσεις %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Σχέση πολλά-προς-πολλά"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Αυτό το πεδίο είναι απαραίτητο."
+
+msgid "Enter a whole number."
+msgstr "Εισάγετε έναν ακέραιο αριθμό."
+
+msgid "Enter a valid date."
+msgstr "Εισάγετε μια έγκυρη ημερομηνία."
+
+msgid "Enter a valid time."
+msgstr "Εισάγετε μια έγκυρη ώρα."
+
+msgid "Enter a valid date/time."
+msgstr "Εισάγετε μια έγκυρη ημερομηνία/ώρα."
+
+msgid "Enter a valid duration."
+msgstr "Εισάγετε μια έγκυρη διάρκεια."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Ο αριθμός των ημερών πρέπει να είναι μεταξύ {min_days} και {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Δεν έχει υποβληθεί κάποιο αρχείο. Ελέγξτε τον τύπο κωδικοποίησης στη φόρμα."
+
+msgid "No file was submitted."
+msgstr "Δεν υποβλήθηκε κάποιο αρχείο."
+
+msgid "The submitted file is empty."
+msgstr "Το αρχείο που υποβλήθηκε είναι κενό."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Βεβαιωθείται πως το όνομα του αρχείου έχει το πολύ %(max)d χαρακτήρα (το "
+"παρόν έχει %(length)d)."
+msgstr[1] ""
+"Βεβαιωθείται πως το όνομα του αρχείου έχει το πολύ %(max)d χαρακτήρα (το "
+"παρόν έχει %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Βεβαιωθείτε ότι είτε έχετε επιλέξει ένα αρχείο για αποστολή είτε έχετε "
+"επιλέξει την εκκαθάριση του πεδίου. Δεν είναι δυνατή η επιλογή και των δύο "
+"ταυτοχρόνως."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Βεβαιωθείτε ότι το αρχείο που έχετε επιλέξει για αποστολή είναι αρχείο "
+"εικόνας. Το τρέχον είτε δεν ήταν εικόνα είτε έχει υποστεί φθορά."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Βεβαιωθείτε ότι έχετε επιλέξει μία έγκυρη επιλογή. Η τιμή %(value)s δεν "
+"είναι διαθέσιμη προς επιλογή."
+
+msgid "Enter a list of values."
+msgstr "Εισάγετε μια λίστα τιμών."
+
+msgid "Enter a complete value."
+msgstr "Εισάγετε μια πλήρης τιμή"
+
+msgid "Enter a valid UUID."
+msgstr "Εισάγετε μια έγκυρη UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Εισάγετε ένα έγκυρο JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Κρυφό πεδίο %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %d form."
+msgid_plural "Please submit at most %d forms."
+msgstr[0] "Παρακαλώ υποβάλλετε το πολύ %d φόρμα."
+msgstr[1] "Παρακαλώ υποβάλλετε το πολύ %d φόρμες."
+
+#, python-format
+msgid "Please submit at least %d form."
+msgid_plural "Please submit at least %d forms."
+msgstr[0] "Παρακαλώ υποβάλλετε τουλάχιστον %d φόρμα."
+msgstr[1] "Παρακαλώ υποβάλλετε τουλάχιστον %d φόρμες."
+
+msgid "Order"
+msgstr "Ταξινόμηση"
+
+msgid "Delete"
+msgstr "Διαγραφή"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Στο %(field)s έχετε ξαναεισάγει τα ίδια δεδομένα."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Στο %(field)s έχετε ξαναεισάγει τα ίδια δεδομένα. Θα πρέπει να εμφανίζονται "
+"μία φορά. "
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Στο %(field_name)s έχετε ξαναεισάγει τα ίδια δεδομένα. Θα πρέπει να "
+"εμφανίζονται μία φορά για το %(lookup)s στο %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Έχετε ξαναεισάγει την ίδια τιμη. Βεβαιωθείτε ότι είναι μοναδική."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Η τιμή δεν είναι ίση με την αντίστοιχη τιμή του γονικού object."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Επιλέξτε μια έγκυρη επιλογή. Η επιλογή αυτή δεν είναι μία από τις διαθέσιμες "
+"επιλογές."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" δεν είναι έγκυρη τιμή."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"Η ημερομηνία %(datetime)s δεν μπόρεσε να μετατραπεί στην ζώνη ώρας "
+"%(current_timezone)s. Ίσως να είναι ασαφής ή να μην υπάρχει."
+
+msgid "Clear"
+msgstr "Εκκαθάριση"
+
+msgid "Currently"
+msgstr "Τώρα"
+
+msgid "Change"
+msgstr "Επεξεργασία"
+
+msgid "Unknown"
+msgstr "Άγνωστο"
+
+msgid "Yes"
+msgstr "Ναι"
+
+msgid "No"
+msgstr "Όχι"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "ναι,όχι,ίσως"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bytes"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "μμ."
+
+msgid "a.m."
+msgstr "πμ."
+
+msgid "PM"
+msgstr "ΜΜ"
+
+msgid "AM"
+msgstr "ΠΜ"
+
+msgid "midnight"
+msgstr "μεσάνυχτα"
+
+msgid "noon"
+msgstr "μεσημέρι"
+
+msgid "Monday"
+msgstr "Δευτέρα"
+
+msgid "Tuesday"
+msgstr "Τρίτη"
+
+msgid "Wednesday"
+msgstr "Τετάρτη"
+
+msgid "Thursday"
+msgstr "Πέμπτη"
+
+msgid "Friday"
+msgstr "Παρασκευή"
+
+msgid "Saturday"
+msgstr "Σάββατο"
+
+msgid "Sunday"
+msgstr "Κυριακή"
+
+msgid "Mon"
+msgstr "Δευ"
+
+msgid "Tue"
+msgstr "Τρί"
+
+msgid "Wed"
+msgstr "Τετ"
+
+msgid "Thu"
+msgstr "Πέμ"
+
+msgid "Fri"
+msgstr "Παρ"
+
+msgid "Sat"
+msgstr "Σαβ"
+
+msgid "Sun"
+msgstr "Κυρ"
+
+msgid "January"
+msgstr "Ιανουάριος"
+
+msgid "February"
+msgstr "Φεβρουάριος"
+
+msgid "March"
+msgstr "Μάρτιος"
+
+msgid "April"
+msgstr "Απρίλιος"
+
+msgid "May"
+msgstr "Μάιος"
+
+msgid "June"
+msgstr "Ιούνιος"
+
+msgid "July"
+msgstr "Ιούλιος"
+
+msgid "August"
+msgstr "Αύγουστος"
+
+msgid "September"
+msgstr "Σεπτέμβριος"
+
+msgid "October"
+msgstr "Οκτώβριος"
+
+msgid "November"
+msgstr "Νοέμβριος"
+
+msgid "December"
+msgstr "Δεκέμβριος"
+
+msgid "jan"
+msgstr "Ιαν"
+
+msgid "feb"
+msgstr "Φεβ"
+
+msgid "mar"
+msgstr "Μάρ"
+
+msgid "apr"
+msgstr "Απρ"
+
+msgid "may"
+msgstr "Μάι"
+
+msgid "jun"
+msgstr "Ιούν"
+
+msgid "jul"
+msgstr "Ιούλ"
+
+msgid "aug"
+msgstr "Αύγ"
+
+msgid "sep"
+msgstr "Σεπ"
+
+msgid "oct"
+msgstr "Οκτ"
+
+msgid "nov"
+msgstr "Νοέ"
+
+msgid "dec"
+msgstr "Δεκ"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ιαν."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Φεβ."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Μάρτιος"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Απρίλ."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Μάιος"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Ιούν."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Ιούλ."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Αύγ."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Σεπτ."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Οκτ."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Νοέμ."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Δεκ."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Ιανουαρίου"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Φεβρουαρίου"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Μαρτίου"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Απριλίου"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Μαΐου"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Ιουνίου"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Ιουλίου"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Αυγούστου"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Σεπτεμβρίου"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Οκτωβρίου"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Νοεμβρίου"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Δεκεμβρίου"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Αυτή δεν είναι έγκυρη διεύθυνση IPv6."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "ή"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Forbidden"
+msgstr "Απαγορευμένο"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Η πιστοποίηση CSRF απέτυχε. Το αίτημα ματαιώθηκε."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Αν οι 'Referer' headers είναι απενεργοποιημένοι στον browser σας από εσάς, "
+"παρακαλούμε να τους ξανά-ενεργοποιήσετε, τουλάχιστον για αυτό το site ή για "
+"τις συνδέσεις HTTPS ή για τα 'same-origin' requests."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Αν χρησιμοποιείτε την ετικέτα ή συμπεριλαμβάνετε την κεφαλίδα (header) 'Referrer-Policy: no-referrer', "
+"παρακαλούμε αφαιρέστε τα. Η προστασία CSRF απαιτεί την κεφαλίδα 'Referer' να "
+"κάνει αυστηρό έλεγχο στον referer. Αν κύριο μέλημα σας είναι η ιδιωτικότητα, "
+"σκεφτείτε να χρησιμοποιήσετε εναλλακτικές μεθόδους όπως για συνδέσμους από άλλες ιστοσελίδες."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Βλέπετε αυτό το μήνυμα επειδή αυτή η σελίδα απαιτεί ένα CSRF cookie, όταν "
+"κατατίθενται φόρμες. Αυτό το cookie είναι απαραίτητο για λόγους ασφαλείας, "
+"για να εξασφαλιστεί ότι ο browser δεν έχει γίνει hijacked από τρίτους."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Αν τα cookies είναι απενεργοποιημένα στον browser σας από εσάς, παρακαλούμε "
+"να τα ξανά-ενεργοποιήσετε, τουλάχιστον για αυτό το site ή για τα 'same-"
+"origin' requests."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Περισσότερες πληροφορίες είναι διαθέσιμες με DEBUG=True."
+
+msgid "No year specified"
+msgstr "Δεν έχει οριστεί χρονιά"
+
+msgid "Date out of range"
+msgstr "Ημερομηνία εκτός εύρους"
+
+msgid "No month specified"
+msgstr "Δεν έχει οριστεί μήνας"
+
+msgid "No day specified"
+msgstr "Δεν έχει οριστεί μέρα"
+
+msgid "No week specified"
+msgstr "Δεν έχει οριστεί εβδομάδα"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Δεν υπάρχουν διαθέσιμα %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Μελλοντικά %(verbose_name_plural)s δεν είναι διαθέσιμα διότι δεν έχει τεθεί "
+"το %(class_name)s.allow_future."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+"Λανθασμένη μορφή ημερομηνίας '%(datestr)s' για την επιλεγμένη μορφή "
+"'%(format)s'"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Δεν βρέθηκαν %(verbose_name)s που να ικανοποιούν την αναζήτηση."
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Η σελίδα δεν έχει την τιμή 'last' υποδηλώνοντας την τελευταία σελίδα, ούτε "
+"μπορεί να μετατραπεί σε ακέραιο."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Άκυρη σελίδα (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Άδεια λίστα και το \"%(class_name)s.allow_empty\" είναι False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Τα ευρετήρια καταλόγων δεν επιτρέπονται εδώ."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "Το \"%(path)s\" δεν υπάρχει"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Ευρετήριο του %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Η εγκατάσταση δούλεψε με επιτυχία! Συγχαρητήρια!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Δείτε τις σημειώσεις κυκλοφορίας για το "
+"Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"Βλέπετε αυτό το μήνυμα επειδή έχετε DEBUG=True στο αρχείο settings και δεν έχετε ρυθμίσει κανένα URL στο "
+"αρχείο urls.py. Στρωθείτε στην δουλειά!"
+
+msgid "Django Documentation"
+msgstr "Εγχειρίδιο Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Θέματα, αναφορές & \"πως να...\""
+
+msgid "Tutorial: A Polling App"
+msgstr "Εγχειρίδιο: Ένα App Ψηφοφορίας"
+
+msgid "Get started with Django"
+msgstr "Ξεκινήστε με το Django"
+
+msgid "Django Community"
+msgstr "Κοινότητα Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Συνδεθείτε, λάβετε βοήθεια, ή συνεισφέρετε"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..21390e34
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..fcb45a29
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/formats.py
new file mode 100644
index 00000000..25c8ef7d
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/el/formats.py
@@ -0,0 +1,34 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "d/m/Y"
+TIME_FORMAT = "P"
+DATETIME_FORMAT = "d/m/Y P"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y P"
+FIRST_DAY_OF_WEEK = 0 # Sunday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ "%Y-%m-%d", # '2006-10-25'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+ "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
+ "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
+ "%d/%m/%y %H:%M", # '25/10/06 14:30'
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..0d4c976d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.po
new file mode 100644
index 00000000..766d9734
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/LC_MESSAGES/django.po
@@ -0,0 +1,1614 @@
+# 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: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2010-05-13 15:35+0200\n"
+"Last-Translator: Django team\n"
+"Language-Team: English \n"
+"Language: en\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:54
+msgid "Afrikaans"
+msgstr ""
+
+#: conf/global_settings.py:55
+msgid "Arabic"
+msgstr ""
+
+#: conf/global_settings.py:56
+msgid "Algerian Arabic"
+msgstr ""
+
+#: conf/global_settings.py:57
+msgid "Asturian"
+msgstr ""
+
+#: conf/global_settings.py:58
+msgid "Azerbaijani"
+msgstr ""
+
+#: conf/global_settings.py:59
+msgid "Bulgarian"
+msgstr ""
+
+#: conf/global_settings.py:60
+msgid "Belarusian"
+msgstr ""
+
+#: conf/global_settings.py:61
+msgid "Bengali"
+msgstr ""
+
+#: conf/global_settings.py:62
+msgid "Breton"
+msgstr ""
+
+#: conf/global_settings.py:63
+msgid "Bosnian"
+msgstr ""
+
+#: conf/global_settings.py:64
+msgid "Catalan"
+msgstr ""
+
+#: conf/global_settings.py:65
+msgid "Central Kurdish (Sorani)"
+msgstr ""
+
+#: conf/global_settings.py:66
+msgid "Czech"
+msgstr ""
+
+#: conf/global_settings.py:67
+msgid "Welsh"
+msgstr ""
+
+#: conf/global_settings.py:68
+msgid "Danish"
+msgstr ""
+
+#: conf/global_settings.py:69
+msgid "German"
+msgstr ""
+
+#: conf/global_settings.py:70
+msgid "Lower Sorbian"
+msgstr ""
+
+#: conf/global_settings.py:71
+msgid "Greek"
+msgstr ""
+
+#: conf/global_settings.py:72
+msgid "English"
+msgstr ""
+
+#: conf/global_settings.py:73
+msgid "Australian English"
+msgstr ""
+
+#: conf/global_settings.py:74
+msgid "British English"
+msgstr ""
+
+#: conf/global_settings.py:75
+msgid "Esperanto"
+msgstr ""
+
+#: conf/global_settings.py:76
+msgid "Spanish"
+msgstr ""
+
+#: conf/global_settings.py:77
+msgid "Argentinian Spanish"
+msgstr ""
+
+#: conf/global_settings.py:78
+msgid "Colombian Spanish"
+msgstr ""
+
+#: conf/global_settings.py:79
+msgid "Mexican Spanish"
+msgstr ""
+
+#: conf/global_settings.py:80
+msgid "Nicaraguan Spanish"
+msgstr ""
+
+#: conf/global_settings.py:81
+msgid "Venezuelan Spanish"
+msgstr ""
+
+#: conf/global_settings.py:82
+msgid "Estonian"
+msgstr ""
+
+#: conf/global_settings.py:83
+msgid "Basque"
+msgstr ""
+
+#: conf/global_settings.py:84
+msgid "Persian"
+msgstr ""
+
+#: conf/global_settings.py:85
+msgid "Finnish"
+msgstr ""
+
+#: conf/global_settings.py:86
+msgid "French"
+msgstr ""
+
+#: conf/global_settings.py:87
+msgid "Frisian"
+msgstr ""
+
+#: conf/global_settings.py:88
+msgid "Irish"
+msgstr ""
+
+#: conf/global_settings.py:89
+msgid "Scottish Gaelic"
+msgstr ""
+
+#: conf/global_settings.py:90
+msgid "Galician"
+msgstr ""
+
+#: conf/global_settings.py:91
+msgid "Hebrew"
+msgstr ""
+
+#: conf/global_settings.py:92
+msgid "Hindi"
+msgstr ""
+
+#: conf/global_settings.py:93
+msgid "Croatian"
+msgstr ""
+
+#: conf/global_settings.py:94
+msgid "Upper Sorbian"
+msgstr ""
+
+#: conf/global_settings.py:95
+msgid "Hungarian"
+msgstr ""
+
+#: conf/global_settings.py:96
+msgid "Armenian"
+msgstr ""
+
+#: conf/global_settings.py:97
+msgid "Interlingua"
+msgstr ""
+
+#: conf/global_settings.py:98
+msgid "Indonesian"
+msgstr ""
+
+#: conf/global_settings.py:99
+msgid "Igbo"
+msgstr ""
+
+#: conf/global_settings.py:100
+msgid "Ido"
+msgstr ""
+
+#: conf/global_settings.py:101
+msgid "Icelandic"
+msgstr ""
+
+#: conf/global_settings.py:102
+msgid "Italian"
+msgstr ""
+
+#: conf/global_settings.py:103
+msgid "Japanese"
+msgstr ""
+
+#: conf/global_settings.py:104
+msgid "Georgian"
+msgstr ""
+
+#: conf/global_settings.py:105
+msgid "Kabyle"
+msgstr ""
+
+#: conf/global_settings.py:106
+msgid "Kazakh"
+msgstr ""
+
+#: conf/global_settings.py:107
+msgid "Khmer"
+msgstr ""
+
+#: conf/global_settings.py:108
+msgid "Kannada"
+msgstr ""
+
+#: conf/global_settings.py:109
+msgid "Korean"
+msgstr ""
+
+#: conf/global_settings.py:110
+msgid "Kyrgyz"
+msgstr ""
+
+#: conf/global_settings.py:111
+msgid "Luxembourgish"
+msgstr ""
+
+#: conf/global_settings.py:112
+msgid "Lithuanian"
+msgstr ""
+
+#: conf/global_settings.py:113
+msgid "Latvian"
+msgstr ""
+
+#: conf/global_settings.py:114
+msgid "Macedonian"
+msgstr ""
+
+#: conf/global_settings.py:115
+msgid "Malayalam"
+msgstr ""
+
+#: conf/global_settings.py:116
+msgid "Mongolian"
+msgstr ""
+
+#: conf/global_settings.py:117
+msgid "Marathi"
+msgstr ""
+
+#: conf/global_settings.py:118
+msgid "Malay"
+msgstr ""
+
+#: conf/global_settings.py:119
+msgid "Burmese"
+msgstr ""
+
+#: conf/global_settings.py:120
+msgid "Norwegian Bokmål"
+msgstr ""
+
+#: conf/global_settings.py:121
+msgid "Nepali"
+msgstr ""
+
+#: conf/global_settings.py:122
+msgid "Dutch"
+msgstr ""
+
+#: conf/global_settings.py:123
+msgid "Norwegian Nynorsk"
+msgstr ""
+
+#: conf/global_settings.py:124
+msgid "Ossetic"
+msgstr ""
+
+#: conf/global_settings.py:125
+msgid "Punjabi"
+msgstr ""
+
+#: conf/global_settings.py:126
+msgid "Polish"
+msgstr ""
+
+#: conf/global_settings.py:127
+msgid "Portuguese"
+msgstr ""
+
+#: conf/global_settings.py:128
+msgid "Brazilian Portuguese"
+msgstr ""
+
+#: conf/global_settings.py:129
+msgid "Romanian"
+msgstr ""
+
+#: conf/global_settings.py:130
+msgid "Russian"
+msgstr ""
+
+#: conf/global_settings.py:131
+msgid "Slovak"
+msgstr ""
+
+#: conf/global_settings.py:132
+msgid "Slovenian"
+msgstr ""
+
+#: conf/global_settings.py:133
+msgid "Albanian"
+msgstr ""
+
+#: conf/global_settings.py:134
+msgid "Serbian"
+msgstr ""
+
+#: conf/global_settings.py:135
+msgid "Serbian Latin"
+msgstr ""
+
+#: conf/global_settings.py:136
+msgid "Swedish"
+msgstr ""
+
+#: conf/global_settings.py:137
+msgid "Swahili"
+msgstr ""
+
+#: conf/global_settings.py:138
+msgid "Tamil"
+msgstr ""
+
+#: conf/global_settings.py:139
+msgid "Telugu"
+msgstr ""
+
+#: conf/global_settings.py:140
+msgid "Tajik"
+msgstr ""
+
+#: conf/global_settings.py:141
+msgid "Thai"
+msgstr ""
+
+#: conf/global_settings.py:142
+msgid "Turkmen"
+msgstr ""
+
+#: conf/global_settings.py:143
+msgid "Turkish"
+msgstr ""
+
+#: conf/global_settings.py:144
+msgid "Tatar"
+msgstr ""
+
+#: conf/global_settings.py:145
+msgid "Udmurt"
+msgstr ""
+
+#: conf/global_settings.py:146
+msgid "Uyghur"
+msgstr ""
+
+#: conf/global_settings.py:147
+msgid "Ukrainian"
+msgstr ""
+
+#: conf/global_settings.py:148
+msgid "Urdu"
+msgstr ""
+
+#: conf/global_settings.py:149
+msgid "Uzbek"
+msgstr ""
+
+#: conf/global_settings.py:150
+msgid "Vietnamese"
+msgstr ""
+
+#: conf/global_settings.py:151
+msgid "Simplified Chinese"
+msgstr ""
+
+#: conf/global_settings.py:152
+msgid "Traditional Chinese"
+msgstr ""
+
+#: contrib/messages/apps.py:16
+msgid "Messages"
+msgstr ""
+
+#: contrib/sitemaps/apps.py:8
+msgid "Site Maps"
+msgstr ""
+
+#: contrib/staticfiles/apps.py:9
+msgid "Static Files"
+msgstr ""
+
+#: contrib/syndication/apps.py:7
+msgid "Syndication"
+msgstr ""
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+#: core/paginator.py:30
+msgid "…"
+msgstr ""
+
+#: core/paginator.py:32
+msgid "That page number is not an integer"
+msgstr ""
+
+#: core/paginator.py:33
+msgid "That page number is less than 1"
+msgstr ""
+
+#: core/paginator.py:34
+msgid "That page contains no results"
+msgstr ""
+
+#: core/validators.py:21
+msgid "Enter a valid value."
+msgstr ""
+
+#: core/validators.py:69
+msgid "Enter a valid domain name."
+msgstr ""
+
+#: core/validators.py:152 forms/fields.py:775
+msgid "Enter a valid URL."
+msgstr ""
+
+#: core/validators.py:199
+msgid "Enter a valid integer."
+msgstr ""
+
+#: core/validators.py:210
+msgid "Enter a valid email address."
+msgstr ""
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+#: core/validators.py:288
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+#: core/validators.py:296
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+#: core/validators.py:308 core/validators.py:317 core/validators.py:331
+#: db/models/fields/__init__.py:2220
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr ""
+
+#: core/validators.py:310
+msgid "IPv4"
+msgstr ""
+
+#: core/validators.py:319 utils/ipv6.py:43
+msgid "IPv6"
+msgstr ""
+
+#: core/validators.py:333
+msgid "IPv4 or IPv6"
+msgstr ""
+
+#: core/validators.py:374
+msgid "Enter only digits separated by commas."
+msgstr ""
+
+#: core/validators.py:380
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+
+#: core/validators.py:415
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+
+#: core/validators.py:424
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+
+#: core/validators.py:433
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#: core/validators.py:440
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+
+#: core/validators.py:472
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:490
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:513 forms/fields.py:366 forms/fields.py:405
+msgid "Enter a number."
+msgstr ""
+
+#: core/validators.py:515
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:520
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:525
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#: core/validators.py:596
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+#: core/validators.py:658
+msgid "Null characters are not allowed."
+msgstr ""
+
+#: db/models/base.py:1600 forms/models.py:908
+msgid "and"
+msgstr ""
+
+#: db/models/base.py:1602
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#: db/models/constraints.py:22
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#: db/models/fields/__init__.py:134
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+#: db/models/fields/__init__.py:135
+msgid "This field cannot be null."
+msgstr ""
+
+#: db/models/fields/__init__.py:136
+msgid "This field cannot be blank."
+msgstr ""
+
+#: db/models/fields/__init__.py:137
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr ""
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#: db/models/fields/__init__.py:141
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#: db/models/fields/__init__.py:180
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr ""
+
+#: db/models/fields/__init__.py:1162
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:1163
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+#: db/models/fields/__init__.py:1165
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#: db/models/fields/__init__.py:1215
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr ""
+
+#: db/models/fields/__init__.py:1217
+msgid "String (unlimited)"
+msgstr ""
+
+#: db/models/fields/__init__.py:1326
+msgid "Comma-separated integers"
+msgstr ""
+
+#: db/models/fields/__init__.py:1427
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#: db/models/fields/__init__.py:1431 db/models/fields/__init__.py:1566
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+#: db/models/fields/__init__.py:1435
+msgid "Date (without time)"
+msgstr ""
+
+#: db/models/fields/__init__.py:1562
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#: db/models/fields/__init__.py:1570
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+#: db/models/fields/__init__.py:1575
+msgid "Date (with time)"
+msgstr ""
+
+#: db/models/fields/__init__.py:1702
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+#: db/models/fields/__init__.py:1704
+msgid "Decimal number"
+msgstr ""
+
+#: db/models/fields/__init__.py:1864
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+#: db/models/fields/__init__.py:1868
+msgid "Duration"
+msgstr ""
+
+#: db/models/fields/__init__.py:1920
+msgid "Email address"
+msgstr ""
+
+#: db/models/fields/__init__.py:1945
+msgid "File path"
+msgstr ""
+
+#: db/models/fields/__init__.py:2023
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+#: db/models/fields/__init__.py:2025
+msgid "Floating point number"
+msgstr ""
+
+#: db/models/fields/__init__.py:2065
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+#: db/models/fields/__init__.py:2067
+msgid "Integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2163
+msgid "Big (8 byte) integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2180
+msgid "Small integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2188
+msgid "IPv4 address"
+msgstr ""
+
+#: db/models/fields/__init__.py:2219
+msgid "IP address"
+msgstr ""
+
+#: db/models/fields/__init__.py:2310 db/models/fields/__init__.py:2311
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+#: db/models/fields/__init__.py:2313
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+#: db/models/fields/__init__.py:2364
+msgid "Positive big integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2379
+msgid "Positive integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2394
+msgid "Positive small integer"
+msgstr ""
+
+#: db/models/fields/__init__.py:2410
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr ""
+
+#: db/models/fields/__init__.py:2446
+msgid "Text"
+msgstr ""
+
+#: db/models/fields/__init__.py:2526
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#: db/models/fields/__init__.py:2530
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+#: db/models/fields/__init__.py:2534
+msgid "Time"
+msgstr ""
+
+#: db/models/fields/__init__.py:2642
+msgid "URL"
+msgstr ""
+
+#: db/models/fields/__init__.py:2666
+msgid "Raw binary data"
+msgstr ""
+
+#: db/models/fields/__init__.py:2731
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+#: db/models/fields/__init__.py:2733
+msgid "Universally unique identifier"
+msgstr ""
+
+#: db/models/fields/files.py:244
+msgid "File"
+msgstr ""
+
+#: db/models/fields/files.py:420
+msgid "Image"
+msgstr ""
+
+#: db/models/fields/json.py:24
+msgid "A JSON object"
+msgstr ""
+
+#: db/models/fields/json.py:26
+msgid "Value must be valid JSON."
+msgstr ""
+
+#: db/models/fields/related.py:978
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+#: db/models/fields/related.py:981
+msgid "Foreign Key (type determined by related field)"
+msgstr ""
+
+#: db/models/fields/related.py:1275
+msgid "One-to-one relationship"
+msgstr ""
+
+#: db/models/fields/related.py:1332
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#: db/models/fields/related.py:1334
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+#: db/models/fields/related.py:1382
+msgid "Many-to-many relationship"
+msgstr ""
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the label
+#: forms/boundfield.py:185
+msgid ":?.!"
+msgstr ""
+
+#: forms/fields.py:95
+msgid "This field is required."
+msgstr ""
+
+#: forms/fields.py:315
+msgid "Enter a whole number."
+msgstr ""
+
+#: forms/fields.py:486 forms/fields.py:1267
+msgid "Enter a valid date."
+msgstr ""
+
+#: forms/fields.py:509 forms/fields.py:1268
+msgid "Enter a valid time."
+msgstr ""
+
+#: forms/fields.py:536
+msgid "Enter a valid date/time."
+msgstr ""
+
+#: forms/fields.py:570
+msgid "Enter a valid duration."
+msgstr ""
+
+#: forms/fields.py:571
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+#: forms/fields.py:640
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+
+#: forms/fields.py:641
+msgid "No file was submitted."
+msgstr ""
+
+#: forms/fields.py:642
+msgid "The submitted file is empty."
+msgstr ""
+
+#: forms/fields.py:644
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/fields.py:649
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+
+#: forms/fields.py:717
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+
+#: forms/fields.py:889 forms/fields.py:975 forms/models.py:1592
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+
+#: forms/fields.py:977 forms/fields.py:1096 forms/models.py:1590
+msgid "Enter a list of values."
+msgstr ""
+
+#: forms/fields.py:1097
+msgid "Enter a complete value."
+msgstr ""
+
+#: forms/fields.py:1339
+msgid "Enter a valid UUID."
+msgstr ""
+
+#: forms/fields.py:1369
+msgid "Enter a valid JSON."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+#: forms/forms.py:97
+msgid ":"
+msgstr ""
+
+#: forms/forms.py:239
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+#: forms/formsets.py:61
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#: forms/formsets.py:65
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/formsets.py:70
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#: forms/formsets.py:484 forms/formsets.py:491
+msgid "Order"
+msgstr ""
+
+#: forms/formsets.py:499
+msgid "Delete"
+msgstr ""
+
+#: forms/models.py:901
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr ""
+
+#: forms/models.py:906
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+
+#: forms/models.py:913
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+
+#: forms/models.py:922
+msgid "Please correct the duplicate values below."
+msgstr ""
+
+#: forms/models.py:1359
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+#: forms/models.py:1450
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+
+#: forms/models.py:1594
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#: forms/utils.py:229
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+#: forms/widgets.py:527
+msgid "Clear"
+msgstr ""
+
+#: forms/widgets.py:528
+msgid "Currently"
+msgstr ""
+
+#: forms/widgets.py:529
+msgid "Change"
+msgstr ""
+
+#: forms/widgets.py:866
+msgid "Unknown"
+msgstr ""
+
+#: forms/widgets.py:867
+msgid "Yes"
+msgstr ""
+
+#: forms/widgets.py:868
+msgid "No"
+msgstr ""
+
+#. Translators: Please do not add spaces around commas.
+#: template/defaultfilters.py:873
+msgid "yes,no,maybe"
+msgstr ""
+
+#: template/defaultfilters.py:903 template/defaultfilters.py:920
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: template/defaultfilters.py:922
+#, python-format
+msgid "%s KB"
+msgstr ""
+
+#: template/defaultfilters.py:924
+#, python-format
+msgid "%s MB"
+msgstr ""
+
+#: template/defaultfilters.py:926
+#, python-format
+msgid "%s GB"
+msgstr ""
+
+#: template/defaultfilters.py:928
+#, python-format
+msgid "%s TB"
+msgstr ""
+
+#: template/defaultfilters.py:930
+#, python-format
+msgid "%s PB"
+msgstr ""
+
+#: utils/dateformat.py:74
+msgid "p.m."
+msgstr ""
+
+#: utils/dateformat.py:75
+msgid "a.m."
+msgstr ""
+
+#: utils/dateformat.py:80
+msgid "PM"
+msgstr ""
+
+#: utils/dateformat.py:81
+msgid "AM"
+msgstr ""
+
+#: utils/dateformat.py:153
+msgid "midnight"
+msgstr ""
+
+#: utils/dateformat.py:155
+msgid "noon"
+msgstr ""
+
+#: utils/dates.py:7
+msgid "Monday"
+msgstr ""
+
+#: utils/dates.py:8
+msgid "Tuesday"
+msgstr ""
+
+#: utils/dates.py:9
+msgid "Wednesday"
+msgstr ""
+
+#: utils/dates.py:10
+msgid "Thursday"
+msgstr ""
+
+#: utils/dates.py:11
+msgid "Friday"
+msgstr ""
+
+#: utils/dates.py:12
+msgid "Saturday"
+msgstr ""
+
+#: utils/dates.py:13
+msgid "Sunday"
+msgstr ""
+
+#: utils/dates.py:16
+msgid "Mon"
+msgstr ""
+
+#: utils/dates.py:17
+msgid "Tue"
+msgstr ""
+
+#: utils/dates.py:18
+msgid "Wed"
+msgstr ""
+
+#: utils/dates.py:19
+msgid "Thu"
+msgstr ""
+
+#: utils/dates.py:20
+msgid "Fri"
+msgstr ""
+
+#: utils/dates.py:21
+msgid "Sat"
+msgstr ""
+
+#: utils/dates.py:22
+msgid "Sun"
+msgstr ""
+
+#: utils/dates.py:25
+msgid "January"
+msgstr ""
+
+#: utils/dates.py:26
+msgid "February"
+msgstr ""
+
+#: utils/dates.py:27
+msgid "March"
+msgstr ""
+
+#: utils/dates.py:28
+msgid "April"
+msgstr ""
+
+#: utils/dates.py:29
+msgid "May"
+msgstr ""
+
+#: utils/dates.py:30
+msgid "June"
+msgstr ""
+
+#: utils/dates.py:31
+msgid "July"
+msgstr ""
+
+#: utils/dates.py:32
+msgid "August"
+msgstr ""
+
+#: utils/dates.py:33
+msgid "September"
+msgstr ""
+
+#: utils/dates.py:34
+msgid "October"
+msgstr ""
+
+#: utils/dates.py:35
+msgid "November"
+msgstr ""
+
+#: utils/dates.py:36
+msgid "December"
+msgstr ""
+
+#: utils/dates.py:39
+msgid "jan"
+msgstr ""
+
+#: utils/dates.py:40
+msgid "feb"
+msgstr ""
+
+#: utils/dates.py:41
+msgid "mar"
+msgstr ""
+
+#: utils/dates.py:42
+msgid "apr"
+msgstr ""
+
+#: utils/dates.py:43
+msgid "may"
+msgstr ""
+
+#: utils/dates.py:44
+msgid "jun"
+msgstr ""
+
+#: utils/dates.py:45
+msgid "jul"
+msgstr ""
+
+#: utils/dates.py:46
+msgid "aug"
+msgstr ""
+
+#: utils/dates.py:47
+msgid "sep"
+msgstr ""
+
+#: utils/dates.py:48
+msgid "oct"
+msgstr ""
+
+#: utils/dates.py:49
+msgid "nov"
+msgstr ""
+
+#: utils/dates.py:50
+msgid "dec"
+msgstr ""
+
+#: utils/dates.py:53
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr ""
+
+#: utils/dates.py:54
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr ""
+
+#: utils/dates.py:55
+msgctxt "abbrev. month"
+msgid "March"
+msgstr ""
+
+#: utils/dates.py:56
+msgctxt "abbrev. month"
+msgid "April"
+msgstr ""
+
+#: utils/dates.py:57
+msgctxt "abbrev. month"
+msgid "May"
+msgstr ""
+
+#: utils/dates.py:58
+msgctxt "abbrev. month"
+msgid "June"
+msgstr ""
+
+#: utils/dates.py:59
+msgctxt "abbrev. month"
+msgid "July"
+msgstr ""
+
+#: utils/dates.py:60
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr ""
+
+#: utils/dates.py:61
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr ""
+
+#: utils/dates.py:62
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr ""
+
+#: utils/dates.py:63
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr ""
+
+#: utils/dates.py:64
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr ""
+
+#: utils/dates.py:67
+msgctxt "alt. month"
+msgid "January"
+msgstr ""
+
+#: utils/dates.py:68
+msgctxt "alt. month"
+msgid "February"
+msgstr ""
+
+#: utils/dates.py:69
+msgctxt "alt. month"
+msgid "March"
+msgstr ""
+
+#: utils/dates.py:70
+msgctxt "alt. month"
+msgid "April"
+msgstr ""
+
+#: utils/dates.py:71
+msgctxt "alt. month"
+msgid "May"
+msgstr ""
+
+#: utils/dates.py:72
+msgctxt "alt. month"
+msgid "June"
+msgstr ""
+
+#: utils/dates.py:73
+msgctxt "alt. month"
+msgid "July"
+msgstr ""
+
+#: utils/dates.py:74
+msgctxt "alt. month"
+msgid "August"
+msgstr ""
+
+#: utils/dates.py:75
+msgctxt "alt. month"
+msgid "September"
+msgstr ""
+
+#: utils/dates.py:76
+msgctxt "alt. month"
+msgid "October"
+msgstr ""
+
+#: utils/dates.py:77
+msgctxt "alt. month"
+msgid "November"
+msgstr ""
+
+#: utils/dates.py:78
+msgctxt "alt. month"
+msgid "December"
+msgstr ""
+
+#: utils/ipv6.py:20
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#: utils/text.py:67
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+#: utils/text.py:278
+msgid "or"
+msgstr ""
+
+#. Translators: This string is used as a separator between list elements
+#: utils/text.py:297 utils/timesince.py:135
+msgid ", "
+msgstr ""
+
+#: utils/timesince.py:8
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:9
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:10
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:11
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:12
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#: utils/timesince.py:13
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: views/csrf.py:29
+msgid "Forbidden"
+msgstr ""
+
+#: views/csrf.py:30
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+#: views/csrf.py:34
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+#: views/csrf.py:40
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+#: views/csrf.py:45
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+#: views/csrf.py:54
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+#: views/csrf.py:60
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+#: views/csrf.py:66
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+#: views/generic/dates.py:44
+msgid "No year specified"
+msgstr ""
+
+#: views/generic/dates.py:64 views/generic/dates.py:115
+#: views/generic/dates.py:214
+msgid "Date out of range"
+msgstr ""
+
+#: views/generic/dates.py:94
+msgid "No month specified"
+msgstr ""
+
+#: views/generic/dates.py:147
+msgid "No day specified"
+msgstr ""
+
+#: views/generic/dates.py:194
+msgid "No week specified"
+msgstr ""
+
+#: views/generic/dates.py:353 views/generic/dates.py:384
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr ""
+
+#: views/generic/dates.py:680
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#: views/generic/dates.py:720
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#: views/generic/detail.py:56
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+
+#: views/generic/list.py:70
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#: views/generic/list.py:77
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#: views/generic/list.py:173
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+#: views/static.py:49
+msgid "Directory indexes are not allowed here."
+msgstr ""
+
+#: views/static.py:51
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#: views/static.py:68 views/templates/directory_index.html:8
+#: views/templates/directory_index.html:11
+#, python-format
+msgid "Index of %(directory)s"
+msgstr ""
+
+#: views/templates/default_urlconf.html:7
+#: views/templates/default_urlconf.html:204
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#: views/templates/default_urlconf.html:206
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+#: views/templates/default_urlconf.html:208
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+
+#: views/templates/default_urlconf.html:217
+msgid "Django Documentation"
+msgstr ""
+
+#: views/templates/default_urlconf.html:218
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+#: views/templates/default_urlconf.html:226
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+#: views/templates/default_urlconf.html:227
+msgid "Get started with Django"
+msgstr ""
+
+#: views/templates/default_urlconf.html:235
+msgid "Django Community"
+msgstr ""
+
+#: views/templates/default_urlconf.html:236
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..8ca08a0c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..a89091d3
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/formats.py
new file mode 100644
index 00000000..f9d143b7
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en/formats.py
@@ -0,0 +1,65 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+
+# Formatting for date objects.
+DATE_FORMAT = "N j, Y"
+# Formatting for time objects.
+TIME_FORMAT = "P"
+# Formatting for datetime objects.
+DATETIME_FORMAT = "N j, Y, P"
+# Formatting for date objects when only the year and month are relevant.
+YEAR_MONTH_FORMAT = "F Y"
+# Formatting for date objects when only the month and day are relevant.
+MONTH_DAY_FORMAT = "F j"
+# Short formatting for date objects.
+SHORT_DATE_FORMAT = "m/d/Y"
+# Short formatting for datetime objects.
+SHORT_DATETIME_FORMAT = "m/d/Y P"
+# First day of week, to be used on calendars.
+# 0 means Sunday, 1 means Monday...
+FIRST_DAY_OF_WEEK = 0
+
+# Formats to be used when parsing dates from input boxes, in order.
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# Note that these format strings are different from the ones to display dates.
+# Kept ISO formats as they are in first position
+DATE_INPUT_FORMATS = [
+ "%Y-%m-%d", # '2006-10-25'
+ "%m/%d/%Y", # '10/25/2006'
+ "%m/%d/%y", # '10/25/06'
+ "%b %d %Y", # 'Oct 25 2006'
+ "%b %d, %Y", # 'Oct 25, 2006'
+ "%d %b %Y", # '25 Oct 2006'
+ "%d %b, %Y", # '25 Oct, 2006'
+ "%B %d %Y", # 'October 25 2006'
+ "%B %d, %Y", # 'October 25, 2006'
+ "%d %B %Y", # '25 October 2006'
+ "%d %B, %Y", # '25 October, 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%m/%d/%Y %H:%M:%S", # '10/25/2006 14:30:59'
+ "%m/%d/%Y %H:%M:%S.%f", # '10/25/2006 14:30:59.000200'
+ "%m/%d/%Y %H:%M", # '10/25/2006 14:30'
+ "%m/%d/%y %H:%M:%S", # '10/25/06 14:30:59'
+ "%m/%d/%y %H:%M:%S.%f", # '10/25/06 14:30:59.000200'
+ "%m/%d/%y %H:%M", # '10/25/06 14:30'
+]
+TIME_INPUT_FORMATS = [
+ "%H:%M:%S", # '14:30:59'
+ "%H:%M:%S.%f", # '14:30:59.000200'
+ "%H:%M", # '14:30'
+]
+
+# Decimal separator symbol.
+DECIMAL_SEPARATOR = "."
+# Thousand separator symbol.
+THOUSAND_SEPARATOR = ","
+# Number of digits that will be together, when splitting them by
+# THOUSAND_SEPARATOR. 0 means no grouping, 3 means splitting by thousands.
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..d31b977a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po
new file mode 100644
index 00000000..a0a3ed8c
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/LC_MESSAGES/django.po
@@ -0,0 +1,1299 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Tom Fifield , 2014
+# Tom Fifield , 2021
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"PO-Revision-Date: 2021-11-18 21:19+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: English (Australia) (http://www.transifex.com/django/django/"
+"language/en_AU/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en_AU\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Arabic"
+
+msgid "Algerian Arabic"
+msgstr "Algerian Arabic"
+
+msgid "Asturian"
+msgstr "Asturian"
+
+msgid "Azerbaijani"
+msgstr "Azerbaijani"
+
+msgid "Bulgarian"
+msgstr "Bulgarian"
+
+msgid "Belarusian"
+msgstr "Belarusian"
+
+msgid "Bengali"
+msgstr "Bengali"
+
+msgid "Breton"
+msgstr "Breton"
+
+msgid "Bosnian"
+msgstr "Bosnian"
+
+msgid "Catalan"
+msgstr "Catalan"
+
+msgid "Czech"
+msgstr "Czech"
+
+msgid "Welsh"
+msgstr "Welsh"
+
+msgid "Danish"
+msgstr "Danish"
+
+msgid "German"
+msgstr "German"
+
+msgid "Lower Sorbian"
+msgstr "Lower Sorbian"
+
+msgid "Greek"
+msgstr "Greek"
+
+msgid "English"
+msgstr "English"
+
+msgid "Australian English"
+msgstr "Australian English"
+
+msgid "British English"
+msgstr "British English"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spanish"
+
+msgid "Argentinian Spanish"
+msgstr "Argentinian Spanish"
+
+msgid "Colombian Spanish"
+msgstr "Colombian Spanish"
+
+msgid "Mexican Spanish"
+msgstr "Mexican Spanish"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nicaraguan Spanish"
+
+msgid "Venezuelan Spanish"
+msgstr "Venezuelan Spanish"
+
+msgid "Estonian"
+msgstr "Estonian"
+
+msgid "Basque"
+msgstr "Basque"
+
+msgid "Persian"
+msgstr "Persian"
+
+msgid "Finnish"
+msgstr "Finnish"
+
+msgid "French"
+msgstr "French"
+
+msgid "Frisian"
+msgstr "Frisian"
+
+msgid "Irish"
+msgstr "Irish"
+
+msgid "Scottish Gaelic"
+msgstr "Scottish Gaelic"
+
+msgid "Galician"
+msgstr "Galician"
+
+msgid "Hebrew"
+msgstr "Hebrew"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croatian"
+
+msgid "Upper Sorbian"
+msgstr "Upper Sorbian"
+
+msgid "Hungarian"
+msgstr "Hungarian"
+
+msgid "Armenian"
+msgstr "Armenian"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesian"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Icelandic"
+
+msgid "Italian"
+msgstr "Italian"
+
+msgid "Japanese"
+msgstr "Japanese"
+
+msgid "Georgian"
+msgstr "Georgian"
+
+msgid "Kabyle"
+msgstr "Kabyle"
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Korean"
+
+msgid "Kyrgyz"
+msgstr "Kyrgyz"
+
+msgid "Luxembourgish"
+msgstr "Luxembourgish"
+
+msgid "Lithuanian"
+msgstr "Lithuanian"
+
+msgid "Latvian"
+msgstr "Latvian"
+
+msgid "Macedonian"
+msgstr "Macedonian"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongolian"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "Burmese"
+
+msgid "Norwegian Bokmål"
+msgstr "Norwegian Bokmål"
+
+msgid "Nepali"
+msgstr "Nepali"
+
+msgid "Dutch"
+msgstr "Dutch"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norwegian Nynorsk"
+
+msgid "Ossetic"
+msgstr "Ossetic"
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Polish"
+
+msgid "Portuguese"
+msgstr "Portuguese"
+
+msgid "Brazilian Portuguese"
+msgstr "Brazilian Portuguese"
+
+msgid "Romanian"
+msgstr "Romanian"
+
+msgid "Russian"
+msgstr "Russian"
+
+msgid "Slovak"
+msgstr "Slovak"
+
+msgid "Slovenian"
+msgstr "Slovenian"
+
+msgid "Albanian"
+msgstr "Albanian"
+
+msgid "Serbian"
+msgstr "Serbian"
+
+msgid "Serbian Latin"
+msgstr "Serbian Latin"
+
+msgid "Swedish"
+msgstr "Swedish"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr "Tajik"
+
+msgid "Thai"
+msgstr "Thai"
+
+msgid "Turkmen"
+msgstr "Turkmen"
+
+msgid "Turkish"
+msgstr "Turkish"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Ukrainian"
+msgstr "Ukrainian"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Uzbek"
+
+msgid "Vietnamese"
+msgstr "Vietnamese"
+
+msgid "Simplified Chinese"
+msgstr "Simplified Chinese"
+
+msgid "Traditional Chinese"
+msgstr "Traditional Chinese"
+
+msgid "Messages"
+msgstr "Messages"
+
+msgid "Site Maps"
+msgstr "Site Maps"
+
+msgid "Static Files"
+msgstr "Static Files"
+
+msgid "Syndication"
+msgstr "Syndication"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "That page number is not an integer"
+
+msgid "That page number is less than 1"
+msgstr "That page number is less than 1"
+
+msgid "That page contains no results"
+msgstr "That page contains no results"
+
+msgid "Enter a valid value."
+msgstr "Enter a valid value."
+
+msgid "Enter a valid URL."
+msgstr "Enter a valid URL."
+
+msgid "Enter a valid integer."
+msgstr "Enter a valid integer."
+
+msgid "Enter a valid email address."
+msgstr "Enter a valid email address."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Enter a valid IPv4 address."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Enter a valid IPv6 address."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Enter a valid IPv4 or IPv6 address."
+
+msgid "Enter only digits separated by commas."
+msgstr "Enter only digits separated by commas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Ensure this value is less than or equal to %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Ensure this value is greater than or equal to %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgstr[1] ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgstr[1] ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Enter a number."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Ensure that there are no more than %(max)s digit in total."
+msgstr[1] "Ensure that there are no more than %(max)s digits in total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Ensure that there are no more than %(max)s decimal place."
+msgstr[1] "Ensure that there are no more than %(max)s decimal places."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgstr[1] ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Null characters are not allowed."
+
+msgid "and"
+msgstr "and"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s with this %(field_labels)s already exists."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Value %(value)r is not a valid choice."
+
+msgid "This field cannot be null."
+msgstr "This field cannot be null."
+
+msgid "This field cannot be blank."
+msgstr "This field cannot be blank."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s with this %(field_label)s already exists."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Field of type: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s” value must be either True or False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "“%(value)s” value must be either True, False, or None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Either True or False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (up to %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Comma-separated integers"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+
+msgid "Date (without time)"
+msgstr "Date (without time)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+
+msgid "Date (with time)"
+msgstr "Date (with time)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s” value must be a decimal number."
+
+msgid "Decimal number"
+msgstr "Decimal number"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+
+msgid "Duration"
+msgstr "Duration"
+
+msgid "Email address"
+msgstr "Email address"
+
+msgid "File path"
+msgstr "File path"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s” value must be a float."
+
+msgid "Floating point number"
+msgstr "Floating point number"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "“%(value)s” value must be an integer."
+
+msgid "Integer"
+msgstr "Integer"
+
+msgid "Big (8 byte) integer"
+msgstr "Big (8 byte) integer"
+
+msgid "Small integer"
+msgstr "Small integer"
+
+msgid "IPv4 address"
+msgstr "IPv4 address"
+
+msgid "IP address"
+msgstr "IP address"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s” value must be either None, True or False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Either True, False or None)"
+
+msgid "Positive big integer"
+msgstr "Positive big integer"
+
+msgid "Positive integer"
+msgstr "Positive integer"
+
+msgid "Positive small integer"
+msgstr "Positive small integer"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (up to %(max_length)s)"
+
+msgid "Text"
+msgstr "Text"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+
+msgid "Time"
+msgstr "Time"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Raw binary data"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” is not a valid UUID."
+
+msgid "Universally unique identifier"
+msgstr "Universally unique identifier"
+
+msgid "File"
+msgstr "File"
+
+msgid "Image"
+msgstr "Image"
+
+msgid "A JSON object"
+msgstr "A JSON object"
+
+msgid "Value must be valid JSON."
+msgstr "Value must be valid JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "%(model)s instance with %(field)s %(value)r does not exist."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Foreign Key (type determined by related field)"
+
+msgid "One-to-one relationship"
+msgstr "One-to-one relationship"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s relationship"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s relationships"
+
+msgid "Many-to-many relationship"
+msgstr "Many-to-many relationship"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "This field is required."
+
+msgid "Enter a whole number."
+msgstr "Enter a whole number."
+
+msgid "Enter a valid date."
+msgstr "Enter a valid date."
+
+msgid "Enter a valid time."
+msgstr "Enter a valid time."
+
+msgid "Enter a valid date/time."
+msgstr "Enter a valid date/time."
+
+msgid "Enter a valid duration."
+msgstr "Enter a valid duration."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "The number of days must be between {min_days} and {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "No file was submitted. Check the encoding type on the form."
+
+msgid "No file was submitted."
+msgstr "No file was submitted."
+
+msgid "The submitted file is empty."
+msgstr "The submitted file is empty."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgstr[1] ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Please either submit a file or check the clear checkbox, not both."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Select a valid choice. %(value)s is not one of the available choices."
+
+msgid "Enter a list of values."
+msgstr "Enter a list of values."
+
+msgid "Enter a complete value."
+msgstr "Enter a complete value."
+
+msgid "Enter a valid UUID."
+msgstr "Enter a valid UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Enter a valid JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Hidden field %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+
+#, python-format
+msgid "Please submit at most %d form."
+msgid_plural "Please submit at most %d forms."
+msgstr[0] "Please submit at most %d form."
+msgstr[1] "Please submit at most %d forms."
+
+#, python-format
+msgid "Please submit at least %d form."
+msgid_plural "Please submit at least %d forms."
+msgstr[0] "Please submit at least %d form."
+msgstr[1] "Please submit at least %d forms."
+
+msgid "Order"
+msgstr "Order"
+
+msgid "Delete"
+msgstr "Delete"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Please correct the duplicate data for %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Please correct the duplicate data for %(field)s, which must be unique."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Please correct the duplicate values below."
+
+msgid "The inline value did not match the parent instance."
+msgstr "The inline value did not match the parent instance."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Select a valid choice. That choice is not one of the available choices."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” is not a valid value."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+
+msgid "Clear"
+msgstr "Clear"
+
+msgid "Currently"
+msgstr "Currently"
+
+msgid "Change"
+msgstr "Change"
+
+msgid "Unknown"
+msgstr "Unknown"
+
+msgid "Yes"
+msgstr "Yes"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "yes,no,maybe"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "midnight"
+
+msgid "noon"
+msgstr "noon"
+
+msgid "Monday"
+msgstr "Monday"
+
+msgid "Tuesday"
+msgstr "Tuesday"
+
+msgid "Wednesday"
+msgstr "Wednesday"
+
+msgid "Thursday"
+msgstr "Thursday"
+
+msgid "Friday"
+msgstr "Friday"
+
+msgid "Saturday"
+msgstr "Saturday"
+
+msgid "Sunday"
+msgstr "Sunday"
+
+msgid "Mon"
+msgstr "Mon"
+
+msgid "Tue"
+msgstr "Tue"
+
+msgid "Wed"
+msgstr "Wed"
+
+msgid "Thu"
+msgstr "Thu"
+
+msgid "Fri"
+msgstr "Fri"
+
+msgid "Sat"
+msgstr "Sat"
+
+msgid "Sun"
+msgstr "Sun"
+
+msgid "January"
+msgstr "January"
+
+msgid "February"
+msgstr "February"
+
+msgid "March"
+msgstr "March"
+
+msgid "April"
+msgstr "April"
+
+msgid "May"
+msgstr "May"
+
+msgid "June"
+msgstr "June"
+
+msgid "July"
+msgstr "July"
+
+msgid "August"
+msgstr "August"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "October"
+
+msgid "November"
+msgstr "November"
+
+msgid "December"
+msgstr "December"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aug"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "March"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "June"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "July"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "January"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "February"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "March"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "June"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "July"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "August"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "September"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "October"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "November"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "December"
+
+msgid "This is not a valid IPv6 address."
+msgstr "This is not a valid IPv6 address."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "or"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Forbidden"
+msgstr "Forbidden"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF verification failed. Request aborted."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+
+msgid "More information is available with DEBUG=True."
+msgstr "More information is available with DEBUG=True."
+
+msgid "No year specified"
+msgstr "No year specified"
+
+msgid "Date out of range"
+msgstr "Date out of range"
+
+msgid "No month specified"
+msgstr "No month specified"
+
+msgid "No day specified"
+msgstr "No day specified"
+
+msgid "No week specified"
+msgstr "No week specified"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No %(verbose_name_plural)s available"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Invalid date string “%(datestr)s” given format “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No %(verbose_name)s found matching the query"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Page is not “last”, nor can it be converted to an int."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Invalid page (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Empty list and “%(class_name)s.allow_empty” is False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Directory indexes are not allowed here."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” does not exist"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Index of %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "The install worked successfully! Congratulations!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"View release notes for Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+
+msgid "Django Documentation"
+msgstr "Django Documentation"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Topics, references, & how-to’s"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: A Polling App"
+
+msgid "Get started with Django"
+msgstr "Get started with Django"
+
+msgid "Django Community"
+msgstr "Django Community"
+
+msgid "Connect, get help, or contribute"
+msgstr "Connect, get help, or contribute"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..ae5719f3
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..dd9f6404
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/formats.py
new file mode 100644
index 00000000..caa6f720
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_AU/formats.py
@@ -0,0 +1,41 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j M Y" # '25 Oct 2006'
+TIME_FORMAT = "P" # '2:30 p.m.'
+DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.'
+YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
+MONTH_DAY_FORMAT = "j F" # '25 October'
+SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
+SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.'
+FIRST_DAY_OF_WEEK = 0 # Sunday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ # "%b %d %Y", # 'Oct 25 2006'
+ # "%b %d, %Y", # 'Oct 25, 2006'
+ # "%d %b %Y", # '25 Oct 2006'
+ # "%d %b, %Y", # '25 Oct, 2006'
+ # "%B %d %Y", # 'October 25 2006'
+ # "%B %d, %Y", # 'October 25, 2006'
+ # "%d %B %Y", # '25 October 2006'
+ # "%d %B, %Y", # '25 October, 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+ "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
+ "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
+ "%d/%m/%y %H:%M", # '25/10/06 14:30'
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..40b057b7
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..72d85e57
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/formats.py
new file mode 100644
index 00000000..b34551de
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_CA/formats.py
@@ -0,0 +1,31 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+
+DATE_FORMAT = "j M Y" # 25 Oct 2006
+TIME_FORMAT = "P" # 2:30 p.m.
+DATETIME_FORMAT = "j M Y, P" # 25 Oct 2006, 2:30 p.m.
+YEAR_MONTH_FORMAT = "F Y" # October 2006
+MONTH_DAY_FORMAT = "j F" # 25 October
+SHORT_DATE_FORMAT = "Y-m-d"
+SHORT_DATETIME_FORMAT = "Y-m-d P"
+FIRST_DAY_OF_WEEK = 0 # Sunday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%Y-%m-%d", # '2006-05-15'
+ "%y-%m-%d", # '06-05-15'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-05-15 14:30:57'
+ "%y-%m-%d %H:%M:%S", # '06-05-15 14:30:57'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-05-15 14:30:57.000200'
+ "%y-%m-%d %H:%M:%S.%f", # '06-05-15 14:30:57.000200'
+ "%Y-%m-%d %H:%M", # '2006-05-15 14:30'
+ "%y-%m-%d %H:%M", # '06-05-15 14:30'
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..bc4b2ccf
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.po
new file mode 100644
index 00000000..348adb06
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/LC_MESSAGES/django.po
@@ -0,0 +1,1221 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jannis Leidel , 2011
+# jon_atkinson , 2011-2012
+# Ross Poulton , 2011-2012
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: English (United Kingdom) (http://www.transifex.com/django/"
+"django/language/en_GB/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: en_GB\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr ""
+
+msgid "Arabic"
+msgstr "Arabic"
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr "Azerbaijani"
+
+msgid "Bulgarian"
+msgstr "Bulgarian"
+
+msgid "Belarusian"
+msgstr ""
+
+msgid "Bengali"
+msgstr "Bengali"
+
+msgid "Breton"
+msgstr ""
+
+msgid "Bosnian"
+msgstr "Bosnian"
+
+msgid "Catalan"
+msgstr "Catalan"
+
+msgid "Czech"
+msgstr "Czech"
+
+msgid "Welsh"
+msgstr "Welsh"
+
+msgid "Danish"
+msgstr "Danish"
+
+msgid "German"
+msgstr "German"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "Greek"
+
+msgid "English"
+msgstr "English"
+
+msgid "Australian English"
+msgstr ""
+
+msgid "British English"
+msgstr "British English"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spanish"
+
+msgid "Argentinian Spanish"
+msgstr "Argentinian Spanish"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "Mexican Spanish"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nicaraguan Spanish"
+
+msgid "Venezuelan Spanish"
+msgstr ""
+
+msgid "Estonian"
+msgstr "Estonian"
+
+msgid "Basque"
+msgstr "Basque"
+
+msgid "Persian"
+msgstr "Persian"
+
+msgid "Finnish"
+msgstr "Finnish"
+
+msgid "French"
+msgstr "French"
+
+msgid "Frisian"
+msgstr "Frisian"
+
+msgid "Irish"
+msgstr "Irish"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "Galician"
+
+msgid "Hebrew"
+msgstr "Hebrew"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croatian"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "Hungarian"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr ""
+
+msgid "Indonesian"
+msgstr "Indonesian"
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr "Icelandic"
+
+msgid "Italian"
+msgstr "Italian"
+
+msgid "Japanese"
+msgstr "Japanese"
+
+msgid "Georgian"
+msgstr "Georgian"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Korean"
+
+msgid "Luxembourgish"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr "Lithuanian"
+
+msgid "Latvian"
+msgstr "Latvian"
+
+msgid "Macedonian"
+msgstr "Macedonian"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongolian"
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Burmese"
+msgstr ""
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Nepali"
+
+msgid "Dutch"
+msgstr "Dutch"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norwegian Nynorsk"
+
+msgid "Ossetic"
+msgstr ""
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Polish"
+
+msgid "Portuguese"
+msgstr "Portuguese"
+
+msgid "Brazilian Portuguese"
+msgstr "Brazilian Portuguese"
+
+msgid "Romanian"
+msgstr "Romanian"
+
+msgid "Russian"
+msgstr "Russian"
+
+msgid "Slovak"
+msgstr "Slovak"
+
+msgid "Slovenian"
+msgstr "Slovenian"
+
+msgid "Albanian"
+msgstr "Albanian"
+
+msgid "Serbian"
+msgstr "Serbian"
+
+msgid "Serbian Latin"
+msgstr "Serbian Latin"
+
+msgid "Swedish"
+msgstr "Swedish"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Thai"
+msgstr "Thai"
+
+msgid "Turkish"
+msgstr "Turkish"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "Ukrainian"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamese"
+
+msgid "Simplified Chinese"
+msgstr "Simplified Chinese"
+
+msgid "Traditional Chinese"
+msgstr "Traditional Chinese"
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr ""
+
+msgid "Static Files"
+msgstr ""
+
+msgid "Syndication"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Enter a valid value."
+
+msgid "Enter a valid URL."
+msgstr "Enter a valid URL."
+
+msgid "Enter a valid integer."
+msgstr ""
+
+msgid "Enter a valid email address."
+msgstr ""
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Enter a valid IPv4 address."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Enter a valid IPv6 address."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Enter a valid IPv4 or IPv6 address."
+
+msgid "Enter only digits separated by commas."
+msgstr "Enter only digits separated by commas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Ensure this value is less than or equal to %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Ensure this value is greater than or equal to %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Enter a number."
+msgstr "Enter a number."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "and"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "This field cannot be null."
+
+msgid "This field cannot be blank."
+msgstr "This field cannot be blank."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s with this %(field_label)s already exists."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Field of type: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Either True or False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (up to %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Comma-separated integers"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Date (without time)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Date (with time)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Decimal number"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr "Email address"
+
+msgid "File path"
+msgstr "File path"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Floating point number"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Integer"
+
+msgid "Big (8 byte) integer"
+msgstr "Big (8 byte) integer"
+
+msgid "IPv4 address"
+msgstr "IPv4 address"
+
+msgid "IP address"
+msgstr "IP address"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolean (Either True, False or None)"
+
+msgid "Positive integer"
+msgstr "Positive integer"
+
+msgid "Positive small integer"
+msgstr "Positive small integer"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (up to %(max_length)s)"
+
+msgid "Small integer"
+msgstr "Small integer"
+
+msgid "Text"
+msgstr "Text"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Time"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "File"
+
+msgid "Image"
+msgstr "Image"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Foreign Key (type determined by related field)"
+
+msgid "One-to-one relationship"
+msgstr "One-to-one relationship"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Many-to-many relationship"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "This field is required."
+
+msgid "Enter a whole number."
+msgstr "Enter a whole number."
+
+msgid "Enter a valid date."
+msgstr "Enter a valid date."
+
+msgid "Enter a valid time."
+msgstr "Enter a valid time."
+
+msgid "Enter a valid date/time."
+msgstr "Enter a valid date/time."
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "No file was submitted. Check the encoding type on the form."
+
+msgid "No file was submitted."
+msgstr "No file was submitted."
+
+msgid "The submitted file is empty."
+msgstr "The submitted file is empty."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Please either submit a file or check the clear checkbox, not both."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Select a valid choice. %(value)s is not one of the available choices."
+
+msgid "Enter a list of values."
+msgstr "Enter a list of values."
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr ""
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "Order"
+
+msgid "Delete"
+msgstr "Delete"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Please correct the duplicate data for %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Please correct the duplicate data for %(field)s, which must be unique."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Please correct the duplicate values below."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Select a valid choice. That choice is not one of the available choices."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Clear"
+
+msgid "Currently"
+msgstr "Currently"
+
+msgid "Change"
+msgstr "Change"
+
+msgid "Unknown"
+msgstr "Unknown"
+
+msgid "Yes"
+msgstr "Yes"
+
+msgid "No"
+msgstr "No"
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr "yes,no,maybe"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "midnight"
+
+msgid "noon"
+msgstr "noon"
+
+msgid "Monday"
+msgstr "Monday"
+
+msgid "Tuesday"
+msgstr "Tuesday"
+
+msgid "Wednesday"
+msgstr "Wednesday"
+
+msgid "Thursday"
+msgstr "Thursday"
+
+msgid "Friday"
+msgstr "Friday"
+
+msgid "Saturday"
+msgstr "Saturday"
+
+msgid "Sunday"
+msgstr "Sunday"
+
+msgid "Mon"
+msgstr "Mon"
+
+msgid "Tue"
+msgstr "Tue"
+
+msgid "Wed"
+msgstr "Wed"
+
+msgid "Thu"
+msgstr "Thu"
+
+msgid "Fri"
+msgstr "Fri"
+
+msgid "Sat"
+msgstr "Sat"
+
+msgid "Sun"
+msgstr "Sun"
+
+msgid "January"
+msgstr "January"
+
+msgid "February"
+msgstr "February"
+
+msgid "March"
+msgstr "March"
+
+msgid "April"
+msgstr "April"
+
+msgid "May"
+msgstr "May"
+
+msgid "June"
+msgstr "June"
+
+msgid "July"
+msgstr "July"
+
+msgid "August"
+msgstr "August"
+
+msgid "September"
+msgstr "September"
+
+msgid "October"
+msgstr "October"
+
+msgid "November"
+msgstr "November"
+
+msgid "December"
+msgstr "December"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aug"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "March"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "June"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "July"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "January"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "February"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "March"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "April"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "May"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "June"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "July"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "August"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "September"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "October"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "November"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "December"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "or"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "0 minutes"
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "No year specified"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "No month specified"
+
+msgid "No day specified"
+msgstr "No day specified"
+
+msgid "No week specified"
+msgstr "No week specified"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No %(verbose_name_plural)s available"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No %(verbose_name)s found matching the query"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Directory indexes are not allowed here."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Index of %(directory)s"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..c760ac41
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..c6ae3a5b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/formats.py
new file mode 100644
index 00000000..bc90da59
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_GB/formats.py
@@ -0,0 +1,41 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j M Y" # '25 Oct 2006'
+TIME_FORMAT = "P" # '2:30 p.m.'
+DATETIME_FORMAT = "j M Y, P" # '25 Oct 2006, 2:30 p.m.'
+YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
+MONTH_DAY_FORMAT = "j F" # '25 October'
+SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
+SHORT_DATETIME_FORMAT = "d/m/Y P" # '25/10/2006 2:30 p.m.'
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ # "%b %d %Y", # 'Oct 25 2006'
+ # "%b %d, %Y", # 'Oct 25, 2006'
+ # "%d %b %Y", # '25 Oct 2006'
+ # "%d %b, %Y", # '25 Oct, 2006'
+ # "%B %d %Y", # 'October 25 2006'
+ # "%B %d, %Y", # 'October 25, 2006'
+ # "%d %B %Y", # '25 October 2006'
+ # "%d %B, %Y", # '25 October, 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+ "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
+ "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
+ "%d/%m/%y %H:%M", # '25/10/06 14:30'
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..42e06232
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..860ae963
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/formats.py
new file mode 100644
index 00000000..81b8324b
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/en_IE/formats.py
@@ -0,0 +1,37 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j M Y" # '25 Oct 2006'
+TIME_FORMAT = "H:i" # '14:30'
+DATETIME_FORMAT = "j M Y, H:i" # '25 Oct 2006, 14:30'
+YEAR_MONTH_FORMAT = "F Y" # 'October 2006'
+MONTH_DAY_FORMAT = "j F" # '25 October'
+SHORT_DATE_FORMAT = "d/m/Y" # '25/10/2006'
+SHORT_DATETIME_FORMAT = "d/m/Y H:i" # '25/10/2006 14:30'
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ "%d %b %Y", # '25 Oct 2006'
+ "%d %b, %Y", # '25 Oct, 2006'
+ "%d %B %Y", # '25 October 2006'
+ "%d %B, %Y", # '25 October, 2006'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-10-25 14:30:59'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-10-25 14:30:59.000200'
+ "%Y-%m-%d %H:%M", # '2006-10-25 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+ "%d/%m/%y %H:%M:%S", # '25/10/06 14:30:59'
+ "%d/%m/%y %H:%M:%S.%f", # '25/10/06 14:30:59.000200'
+ "%d/%m/%y %H:%M", # '25/10/06 14:30'
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..05260e5b
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.po
new file mode 100644
index 00000000..66a2f381
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/LC_MESSAGES/django.po
@@ -0,0 +1,1331 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Batist D 🐍 , 2012-2013
+# Batist D 🐍 , 2013-2019
+# batisteo , 2011
+# Dinu Gherman , 2011
+# kristjan , 2011
+# Matthieu Desplantes , 2021
+# Meiyer , 2022
+# Nikolay Korotkiy , 2017-2018
+# Robin van der Vliet , 2019
+# Adamo Mesha , 2012
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
+"PO-Revision-Date: 2022-05-25 06:49+0000\n"
+"Last-Translator: Meiyer , 2022\n"
+"Language-Team: Esperanto (http://www.transifex.com/django/django/language/"
+"eo/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: eo\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikansa"
+
+msgid "Arabic"
+msgstr "Araba"
+
+msgid "Algerian Arabic"
+msgstr "Alĝeria araba"
+
+msgid "Asturian"
+msgstr "Asturia"
+
+msgid "Azerbaijani"
+msgstr "Azerbajĝana"
+
+msgid "Bulgarian"
+msgstr "Bulgara"
+
+msgid "Belarusian"
+msgstr "Belorusa"
+
+msgid "Bengali"
+msgstr "Bengala"
+
+msgid "Breton"
+msgstr "Bretona"
+
+msgid "Bosnian"
+msgstr "Bosnia"
+
+msgid "Catalan"
+msgstr "Kataluna"
+
+msgid "Czech"
+msgstr "Ĉeĥa"
+
+msgid "Welsh"
+msgstr "Kimra"
+
+msgid "Danish"
+msgstr "Dana"
+
+msgid "German"
+msgstr "Germana"
+
+msgid "Lower Sorbian"
+msgstr "Malsuprasaroba"
+
+msgid "Greek"
+msgstr "Greka"
+
+msgid "English"
+msgstr "Angla"
+
+msgid "Australian English"
+msgstr "Angla (Aŭstralia)"
+
+msgid "British English"
+msgstr "Angla (Brita)"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Hispana"
+
+msgid "Argentinian Spanish"
+msgstr "Hispana (Argentinio)"
+
+msgid "Colombian Spanish"
+msgstr "Hispana (Kolombio)"
+
+msgid "Mexican Spanish"
+msgstr "Hispana (Meksiko)"
+
+msgid "Nicaraguan Spanish"
+msgstr "Hispana (Nikaragvo)"
+
+msgid "Venezuelan Spanish"
+msgstr "Hispana (Venezuelo)"
+
+msgid "Estonian"
+msgstr "Estona"
+
+msgid "Basque"
+msgstr "Eŭska"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finna"
+
+msgid "French"
+msgstr "Franca"
+
+msgid "Frisian"
+msgstr "Frisa"
+
+msgid "Irish"
+msgstr "Irlanda"
+
+msgid "Scottish Gaelic"
+msgstr "Skota gaela"
+
+msgid "Galician"
+msgstr "Galega"
+
+msgid "Hebrew"
+msgstr "Hebrea"
+
+msgid "Hindi"
+msgstr "Hinda"
+
+msgid "Croatian"
+msgstr "Kroata"
+
+msgid "Upper Sorbian"
+msgstr "Suprasoraba"
+
+msgid "Hungarian"
+msgstr "Hungara"
+
+msgid "Armenian"
+msgstr "Armena"
+
+msgid "Interlingua"
+msgstr "Interlingvaa"
+
+msgid "Indonesian"
+msgstr "Indoneza"
+
+msgid "Igbo"
+msgstr "Igba"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islanda"
+
+msgid "Italian"
+msgstr "Itala"
+
+msgid "Japanese"
+msgstr "Japana"
+
+msgid "Georgian"
+msgstr "Kartvela"
+
+msgid "Kabyle"
+msgstr "Kabila"
+
+msgid "Kazakh"
+msgstr "Kazaĥa"
+
+msgid "Khmer"
+msgstr "Kmera"
+
+msgid "Kannada"
+msgstr "Kanara"
+
+msgid "Korean"
+msgstr "Korea"
+
+msgid "Kyrgyz"
+msgstr "Kirgiza"
+
+msgid "Luxembourgish"
+msgstr "Luksemburga"
+
+msgid "Lithuanian"
+msgstr "Litova"
+
+msgid "Latvian"
+msgstr "Latva"
+
+msgid "Macedonian"
+msgstr "Makedona"
+
+msgid "Malayalam"
+msgstr "Malajala"
+
+msgid "Mongolian"
+msgstr "Mongola"
+
+msgid "Marathi"
+msgstr "Marata"
+
+msgid "Malay"
+msgstr "Malaja"
+
+msgid "Burmese"
+msgstr "Birma"
+
+msgid "Norwegian Bokmål"
+msgstr "Norvega (bokmål)"
+
+msgid "Nepali"
+msgstr "Nepala"
+
+msgid "Dutch"
+msgstr "Nederlanda"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norvega (nynorsk)"
+
+msgid "Ossetic"
+msgstr "Oseta"
+
+msgid "Punjabi"
+msgstr "Panĝaba"
+
+msgid "Polish"
+msgstr "Pola"
+
+msgid "Portuguese"
+msgstr "Portugala"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugala (Brazilo)"
+
+msgid "Romanian"
+msgstr "Rumana"
+
+msgid "Russian"
+msgstr "Rusa"
+
+msgid "Slovak"
+msgstr "Slovaka"
+
+msgid "Slovenian"
+msgstr "Slovena"
+
+msgid "Albanian"
+msgstr "Albana"
+
+msgid "Serbian"
+msgstr "Serba"
+
+msgid "Serbian Latin"
+msgstr "Serba (latina)"
+
+msgid "Swedish"
+msgstr "Sveda"
+
+msgid "Swahili"
+msgstr "Svahila"
+
+msgid "Tamil"
+msgstr "Tamila"
+
+msgid "Telugu"
+msgstr "Telugua"
+
+msgid "Tajik"
+msgstr "Taĝika"
+
+msgid "Thai"
+msgstr "Taja"
+
+msgid "Turkmen"
+msgstr "Turkmena"
+
+msgid "Turkish"
+msgstr "Turka"
+
+msgid "Tatar"
+msgstr "Tatara"
+
+msgid "Udmurt"
+msgstr "Udmurta"
+
+msgid "Ukrainian"
+msgstr "Ukraina"
+
+msgid "Urdu"
+msgstr "Urdua"
+
+msgid "Uzbek"
+msgstr "Uzbeka"
+
+msgid "Vietnamese"
+msgstr "Vjetnama"
+
+msgid "Simplified Chinese"
+msgstr "Ĉina (simpligite)"
+
+msgid "Traditional Chinese"
+msgstr "Ĉina (tradicie)"
+
+msgid "Messages"
+msgstr "Mesaĝoj"
+
+msgid "Site Maps"
+msgstr "Retejaj mapoj"
+
+msgid "Static Files"
+msgstr "Statikaj dosieroj"
+
+msgid "Syndication"
+msgstr "Abonrilato"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Tia paĝnumero ne estas entjero"
+
+msgid "That page number is less than 1"
+msgstr "La paĝnumero estas malpli ol 1"
+
+msgid "That page contains no results"
+msgstr "Tiu paĝo ne enhavas rezultojn"
+
+msgid "Enter a valid value."
+msgstr "Enigu ĝustan valoron."
+
+msgid "Enter a valid URL."
+msgstr "Enigu ĝustan retadreson."
+
+msgid "Enter a valid integer."
+msgstr "Enigu ĝustaforman entjeron."
+
+msgid "Enter a valid email address."
+msgstr "Enigu ĝustaforman retpoŝtan adreson."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Enigu ĝustan “ĵetonvorton” konsistantan el latinaj literoj, ciferoj, "
+"substrekoj, aŭ dividstrekoj."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Enigu ĝustan “ĵetonvorton” konsistantan el Unikodaj literoj, ciferoj, "
+"substrekoj, aŭ dividstrekoj."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Enigu ĝustaforman IPv4-adreson."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Enigu ĝustaforman IPv6-adreson."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Enigu ĝustaforman IPv4- aŭ IPv6-adreson."
+
+msgid "Enter only digits separated by commas."
+msgstr "Enigu nur ciferojn apartigitajn per komoj."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Certigu ke ĉi tiu valoro estas %(limit_value)s (ĝi estas %(show_value)s). "
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Certigu ke ĉi tiu valoro estas malpli ol aŭ egala al %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Certigu ke ĉi tiu valoro estas pli ol aŭ egala al %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Certigu ke ĉi tiu valoro estas oblo de paŝo-grando %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Certigu, ke tiu valoro havas %(limit_value)d signon (ĝi havas "
+"%(show_value)d)."
+msgstr[1] ""
+"Certigu ke ĉi tiu valoro enhavas almenaŭ %(limit_value)d signojn (ĝi havas "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Certigu, ke tio valuto maksimume havas %(limit_value)d karakterojn (ĝi havas "
+"%(show_value)d)."
+msgstr[1] ""
+"Certigu ke ĉi tiu valoro maksimume enhavas %(limit_value)d signojn (ĝi havas "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Enigu nombron."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Certigu ke ne estas pli ol %(max)s cifero entute."
+msgstr[1] "Certigu ke ne estas pli ol %(max)s ciferoj entute."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Certigu, ke ne estas pli ol %(max)s dekumaj lokoj."
+msgstr[1] "Certigu, ke ne estas pli ol %(max)s dekumaj lokoj."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Certigu ke ne estas pli ol %(max)s ciferoj antaŭ la dekuma punkto."
+msgstr[1] "Certigu ke ne estas pli ol %(max)s ciferoj antaŭ la dekuma punkto."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Sufikso “%(extension)s” de dosiernomo ne estas permesita. Eblaj sufiksoj "
+"estas: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Nulsignoj ne estas permesitaj."
+
+msgid "and"
+msgstr "kaj"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s kun tiuj %(field_labels)s jam ekzistas."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Limigo “%(name)s” estas malobservita."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Valoro %(value)r ne estas ebla elekto."
+
+msgid "This field cannot be null."
+msgstr "Tiu ĉi kampo ne povas esti senvalora (null)."
+
+msgid "This field cannot be blank."
+msgstr "Tiu ĉi kampo ne povas esti malplena."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s kun tiu %(field_label)s jam ekzistas."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s devas esti unika por %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Kampo de tipo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "La valoro “%(value)s” devas esti aŭ Vera (True) aŭ Malvera (False)."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+"La valoro “%(value)s” devas esti Vera (True), Malvera (False), aŭ Nenia "
+"(None)."
+
+msgid "Boolean (Either True or False)"
+msgstr "Bulea (Vera aŭ Malvera)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Ĉeno (ĝis %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Perkome disigitaj entjeroj"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"La valoro “%(value)s” havas malĝustan datformaton. Ĝi devas esti en la "
+"formato JJJJ-MM-TT."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT), sed ĝi estas "
+"neekzistanta dato."
+
+msgid "Date (without time)"
+msgstr "Dato (sen horo)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato "
+"JJJJ-MM-TT HH:MM[:ss[.µµµµµµ]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"La valoro “%(value)s” havas la ĝustan formaton (JJJJ-MM-TT HH:MM[:ss[."
+"µµµµµµ]][TZ]), sed ĝi estas neekzistanta dato/tempo."
+
+msgid "Date (with time)"
+msgstr "Dato (kun horo)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "La valoro “%(value)s” devas esti dekuma frakcio."
+
+msgid "Decimal number"
+msgstr "Dekuma nombro"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato "
+"[TT] [[HH:]MM:]ss[.µµµµµµ]."
+
+msgid "Duration"
+msgstr "Daŭro"
+
+msgid "Email address"
+msgstr "Retpoŝtadreso"
+
+msgid "File path"
+msgstr "Dosierindiko"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "La valoro “%(value)s” devas esti glitpunkta nombro."
+
+msgid "Floating point number"
+msgstr "Glitpunkta nombro"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "La valoro “%(value)s” devas esti entjero."
+
+msgid "Integer"
+msgstr "Entjero"
+
+msgid "Big (8 byte) integer"
+msgstr "Granda (8–bitoka) entjero"
+
+msgid "Small integer"
+msgstr "Malgranda entjero"
+
+msgid "IPv4 address"
+msgstr "IPv4-adreso"
+
+msgid "IP address"
+msgstr "IP-adreso"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+"La valoro “%(value)s” devas esti Nenia (None), Vera (True), aŭ Malvera "
+"(False)."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Buleo (Vera, Malvera, aŭ Nenia)"
+
+msgid "Positive big integer"
+msgstr "Pozitiva granda entjero"
+
+msgid "Positive integer"
+msgstr "Pozitiva entjero"
+
+msgid "Positive small integer"
+msgstr "Pozitiva malgranda entjero"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Ĵetonvorto (ĝis %(max_length)s)"
+
+msgid "Text"
+msgstr "Teksto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"La valoro “%(value)s” havas malĝustan formaton. Ĝi devas esti en la formato "
+"HH:MM[:ss[.µµµµµµ]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"La valoro “%(value)s” havas la (HH:MM[:ss[.µµµµµµ]]), sed tio estas "
+"neekzistanta tempo."
+
+msgid "Time"
+msgstr "Horo"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Kruda duuma datumo"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” ne estas ĝustaforma UUID."
+
+msgid "Universally unique identifier"
+msgstr "Universale unika identigilo"
+
+msgid "File"
+msgstr "Dosiero"
+
+msgid "Image"
+msgstr "Bildo"
+
+msgid "A JSON object"
+msgstr "JSON-objekto"
+
+msgid "Value must be valid JSON."
+msgstr "La valoro devas esti ĝustaforma JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "Ekzemplero de %(model)s kun %(field)s egala al %(value)r ne ekzistas."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Fremda ŝlosilo (tipo determinita per rilata kampo)"
+
+msgid "One-to-one relationship"
+msgstr "Unu-al-unu rilato"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s rilato"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s rilatoj"
+
+msgid "Many-to-many relationship"
+msgstr "Mult-al-multa rilato"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Ĉi tiu kampo estas deviga."
+
+msgid "Enter a whole number."
+msgstr "Enigu plenan nombron."
+
+msgid "Enter a valid date."
+msgstr "Enigu ĝustan daton."
+
+msgid "Enter a valid time."
+msgstr "Enigu ĝustan horon."
+
+msgid "Enter a valid date/time."
+msgstr "Enigu ĝustan daton/tempon."
+
+msgid "Enter a valid duration."
+msgstr "Enigu ĝustan daŭron."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "La nombro de tagoj devas esti inter {min_days} kaj {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Neniu dosiero estis alŝutita. Kontrolu la kodoprezentan tipon en la "
+"formularo."
+
+msgid "No file was submitted."
+msgstr "Neniu dosiero estis alŝutita."
+
+msgid "The submitted file is empty."
+msgstr "La alŝutita dosiero estas malplena."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Certigu, ke tio dosiernomo maksimume havas %(max)d karakteron (ĝi havas "
+"%(length)d)."
+msgstr[1] ""
+"Certigu ke la dosiernomo maksimume havas %(max)d signojn (ĝi havas "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Bonvolu aŭ alŝuti dosieron, aŭ elekti la vakigan markobutonon, sed ne ambaŭ."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Alŝutu ĝustaforman bildon. La alŝutita dosiero ne estas bildo aŭ estas "
+"difektita bildo."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Elektu ekzistantan opcion. %(value)s ne estas el la eblaj elektoj."
+
+msgid "Enter a list of values."
+msgstr "Enigu liston de valoroj."
+
+msgid "Enter a complete value."
+msgstr "Enigu kompletan valoron."
+
+msgid "Enter a valid UUID."
+msgstr "Enigu ĝustaforman UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Enigu ĝustaforman JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Kaŝita kampo %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"La datumoj de la mastruma ManagementForm mankas aŭ estis malice modifitaj. "
+"Mankas la kampoj: %(field_names)s. Se la problemo plu okazas, vi poveble "
+"devintus raporti cimon."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Bonvolu forsendi maksimume %(num)d formularon."
+msgstr[1] "Bonvolu forsendi maksimume %(num)d formularojn."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Bonvolu forsendi almenaŭ %(num)d formularon."
+msgstr[1] "Bonvolu forsendi almenaŭ %(num)d formularojn."
+
+msgid "Order"
+msgstr "Ordo"
+
+msgid "Delete"
+msgstr "Forigi"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Bonvolu ĝustigi la duoblan datumon por %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Bonvolu ĝustigi la duoblan datumon por %(field)s, kiu devas esti unika."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Bonvolu ĝustigi la duoblan datumon por %(field_name)s, kiu devas esti unika "
+"por la %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Bonvolu ĝustigi la duoblan valoron sube."
+
+msgid "The inline value did not match the parent instance."
+msgstr "La enteksta valoro ne egalas la patran ekzempleron."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Elektu ekzistantan opcion. Ĉi tiu opcio ne estas el la eblaj elektoj."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” estas neakceptebla valoro."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"Ne eblis interpreti %(datetime)s en la tempo-zono %(current_timezone)s. Ĝi "
+"eble estas ambigua aŭ ne ekzistas en tiu tempo-zono."
+
+msgid "Clear"
+msgstr "Vakigi"
+
+msgid "Currently"
+msgstr "Nuntempe"
+
+msgid "Change"
+msgstr "Ŝanĝi"
+
+msgid "Unknown"
+msgstr "Nekonate"
+
+msgid "Yes"
+msgstr "Jes"
+
+msgid "No"
+msgstr "Ne"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "jes,ne,eble"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bitoko"
+msgstr[1] "%(size)d bitokoj"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "ptm"
+
+msgid "a.m."
+msgstr "atm"
+
+msgid "PM"
+msgstr "PTM"
+
+msgid "AM"
+msgstr "ATM"
+
+msgid "midnight"
+msgstr "noktomezo"
+
+msgid "noon"
+msgstr "tagmezo"
+
+msgid "Monday"
+msgstr "lundo"
+
+msgid "Tuesday"
+msgstr "mardo"
+
+msgid "Wednesday"
+msgstr "merkredo"
+
+msgid "Thursday"
+msgstr "ĵaŭdo"
+
+msgid "Friday"
+msgstr "vendredo"
+
+msgid "Saturday"
+msgstr "sabato"
+
+msgid "Sunday"
+msgstr "dimanĉo"
+
+msgid "Mon"
+msgstr "lun"
+
+msgid "Tue"
+msgstr "mar"
+
+msgid "Wed"
+msgstr "mer"
+
+msgid "Thu"
+msgstr "ĵaŭ"
+
+msgid "Fri"
+msgstr "ven"
+
+msgid "Sat"
+msgstr "sab"
+
+msgid "Sun"
+msgstr "dim"
+
+msgid "January"
+msgstr "januaro"
+
+msgid "February"
+msgstr "februaro"
+
+msgid "March"
+msgstr "marto"
+
+msgid "April"
+msgstr "aprilo"
+
+msgid "May"
+msgstr "majo"
+
+msgid "June"
+msgstr "junio"
+
+msgid "July"
+msgstr "julio"
+
+msgid "August"
+msgstr "aŭgusto"
+
+msgid "September"
+msgstr "septembro"
+
+msgid "October"
+msgstr "oktobro"
+
+msgid "November"
+msgstr "novembro"
+
+msgid "December"
+msgstr "decembro"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "maj"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aŭg"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "mar."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "apr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "majo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "jun."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "jul."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "aŭg."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Januaro"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Februaro"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marto"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Aprilo"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Majo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Aŭgusto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Septembro"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Oktobro"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Novembro"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Decembro"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Tio ne estas ĝustaforma IPv6-adreso."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "aŭ"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d jaro"
+msgstr[1] "%(num)d jaroj"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d monato"
+msgstr[1] "%(num)d monatoj"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d semajno"
+msgstr[1] "%(num)d semajnoj"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d tago"
+msgstr[1] "%(num)d tagoj"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d horo"
+msgstr[1] "%(num)d horoj"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuto"
+msgstr[1] "%(num)d minutoj"
+
+msgid "Forbidden"
+msgstr "Malpermesita"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Kontrolo de CSRF malsukcesis. Peto ĉesigita."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu HTTPS-retejo postulas ricevi la "
+"kapinstrukcion “Referer” de via retumilo, sed neniu estis sendita. Tia "
+"kapinstrukcio estas bezonata pro sekurecaj kialoj, por certigi ke via "
+"retumilo ne agas laŭ nedezirataj instrukcioj de maliculoj."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Se la agordoj de via retumilo malebligas la kapinstrukciojn “Referer”, "
+"bonvolu ebligi ilin por tiu ĉi retejo, aŭ por HTTPS-konektoj, aŭ por petoj "
+"el sama fonto (“same-origin”)."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Se vi uzas la etikedon aŭ "
+"sendas la kapinstrukcion “Referrer-Policy: no-referrer”, bonvolu forigi "
+"ilin. La protekto kontraŭ CSRF postulas la ĉeeston de la kapinstrukcio "
+"“Referer”, kaj strikte kontrolas la referencantan fonton. Se vi zorgas pri "
+"privateco, uzu alternativojn kiajn por ligiloj al "
+"eksteraj retejoj."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Vi vidas tiun ĉi mesaĝon ĉar ĉi-tiu retejo postulas ke CSRF-kuketo estu "
+"sendita kune kun la formularoj. Tia kuketo estas bezonata pro sekurecaj "
+"kialoj, por certigi ke via retumilo ne agas laŭ nedezirataj instrukcioj de "
+"maliculoj."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Se la agordoj de via retumilo malebligas kuketojn, bonvolu ebligi ilin por "
+"tiu ĉi retejo aŭ por petoj el sama fonto (“same-origin”)."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Pliaj informoj estas videblaj kun DEBUG=True."
+
+msgid "No year specified"
+msgstr "Neniu jaro indikita"
+
+msgid "Date out of range"
+msgstr "Dato ne en la intervalo"
+
+msgid "No month specified"
+msgstr "Neniu monato indikita"
+
+msgid "No day specified"
+msgstr "Neniu tago indikita"
+
+msgid "No week specified"
+msgstr "Neniu semajno indikita"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Neniuj %(verbose_name_plural)s estas disponeblaj"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Estontaj %(verbose_name_plural)s ne disponeblas ĉar %(class_name)s."
+"allow_future estas Malvera."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Erarforma dato-ĉeno “%(datestr)s” se uzi la formaton “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Neniu %(verbose_name)s trovita kongrua kun la informpeto"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Paĝo ne estas “lasta”, nek eblas konverti ĝin en entjeron."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Malĝusta paĝo (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+"La listo estas malplena dum “%(class_name)s.allow_empty” estas Malvera."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Dosierujaj indeksoj ne estas permesitaj ĉi tie."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” ne ekzistas"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Indekso de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "La instalado sukcesis! Gratulojn!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Vidu eldonajn notojn por Dĵango %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Vi vidas ĉi tiun paĝon ĉar DEBUG = "
+"True estas en via agorda dosiero kaj vi ne agordis ajnan URL."
+
+msgid "Django Documentation"
+msgstr "Dĵanga dokumentaro"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Temoj, referencoj, kaj instruiloj"
+
+msgid "Tutorial: A Polling App"
+msgstr "Instruilo: apo pri enketoj"
+
+msgid "Get started with Django"
+msgstr "Komencu kun Dĵango"
+
+msgid "Django Community"
+msgstr "Dĵanga komunumo"
+
+msgid "Connect, get help, or contribute"
+msgstr "Konektiĝu, ricevu helpon aŭ kontribuu"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..88869909
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..50a821a1
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/formats.py
new file mode 100644
index 00000000..d1346d1c
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eo/formats.py
@@ -0,0 +1,44 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"j\-\a \d\e F Y" # '26-a de julio 1887'
+TIME_FORMAT = "H:i" # '18:59'
+DATETIME_FORMAT = r"j\-\a \d\e F Y\, \j\e H:i" # '26-a de julio 1887, je 18:59'
+YEAR_MONTH_FORMAT = r"F \d\e Y" # 'julio de 1887'
+MONTH_DAY_FORMAT = r"j\-\a \d\e F" # '26-a de julio'
+SHORT_DATE_FORMAT = "Y-m-d" # '1887-07-26'
+SHORT_DATETIME_FORMAT = "Y-m-d H:i" # '1887-07-26 18:59'
+FIRST_DAY_OF_WEEK = 1 # Monday (lundo)
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%Y-%m-%d", # '1887-07-26'
+ "%y-%m-%d", # '87-07-26'
+ "%Y %m %d", # '1887 07 26'
+ "%Y.%m.%d", # '1887.07.26'
+ "%d-a de %b %Y", # '26-a de jul 1887'
+ "%d %b %Y", # '26 jul 1887'
+ "%d-a de %B %Y", # '26-a de julio 1887'
+ "%d %B %Y", # '26 julio 1887'
+ "%d %m %Y", # '26 07 1887'
+ "%d/%m/%Y", # '26/07/1887'
+]
+TIME_INPUT_FORMATS = [
+ "%H:%M:%S", # '18:59:00'
+ "%H:%M", # '18:59'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '1887-07-26 18:59:00'
+ "%Y-%m-%d %H:%M", # '1887-07-26 18:59'
+ "%Y.%m.%d %H:%M:%S", # '1887.07.26 18:59:00'
+ "%Y.%m.%d %H:%M", # '1887.07.26 18:59'
+ "%d/%m/%Y %H:%M:%S", # '26/07/1887 18:59:00'
+ "%d/%m/%Y %H:%M", # '26/07/1887 18:59'
+ "%y-%m-%d %H:%M:%S", # '87-07-26 18:59:00'
+ "%y-%m-%d %H:%M", # '87-07-26 18:59'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..793e97a4
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.po
new file mode 100644
index 00000000..6d9fd6a4
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/LC_MESSAGES/django.po
@@ -0,0 +1,1414 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011
+# Abe Estrada, 2013
+# Abe Estrada, 2013
+# albertoalcolea , 2014
+# albertoalcolea , 2014
+# Amanda Copete, 2017
+# Amanda Copete, 2017
+# Antoni Aloy , 2011-2014,2017,2019
+# Claude Paroz , 2020
+# Diego Andres Sanabria Martin , 2012
+# Diego Schulz , 2012
+# e4db27214f7e7544f2022c647b585925_bb0e321, 2014,2020
+# e4db27214f7e7544f2022c647b585925_bb0e321, 2015-2016
+# e4db27214f7e7544f2022c647b585925_bb0e321, 2014
+# e4db27214f7e7544f2022c647b585925_bb0e321, 2020
+# Ernesto Rico Schmidt , 2017
+# Ernesto Rico Schmidt , 2017
+# 8cb2d5a716c3c9a99b6d20472609a4d5_6d03802 , 2011
+# Gustavo Adolfo Huarcaya Delgado , 2025
+# Ignacio José Lizarán Rus , 2019
+# Igor Támara , 2015
+# Jannis Leidel , 2011
+# Jorge Andres Bravo Meza, 2024
+# José Luis , 2016
+# José Luis , 2016
+# Josue Naaman Nistal Guerra , 2014
+# Leonardo J. Caballero G. , 2011,2013
+# Luigy, 2019
+# Luigy, 2019
+# Marc Garcia , 2011
+# Mariusz Felisiak , 2021
+# mpachas , 2022
+# monobotsoft , 2012
+# Natalia, 2024
+# ntrrgc , 2013
+# ntrrgc , 2013
+# Pablo, 2015
+# Pablo, 2015
+# Sebastián Magrí, 2013
+# Sebastián Magrí, 2013
+# Uriel Medina , 2020-2021,2023
+# Veronicabh , 2015
+# Veronicabh , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: Gustavo Adolfo Huarcaya Delgado , 2025\n"
+"Language-Team: Spanish (http://app.transifex.com/django/django/language/"
+"es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? "
+"1 : 2;\n"
+
+msgid "Afrikaans"
+msgstr "Africano"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Algerian Arabic"
+msgstr "Árabe argelino"
+
+msgid "Asturian"
+msgstr "Asturiano"
+
+msgid "Azerbaijani"
+msgstr "Azerbaiyán"
+
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+msgid "Belarusian"
+msgstr "Bielorruso"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "Bretón"
+
+msgid "Bosnian"
+msgstr "Bosnio"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Kurdo central (Sorani)"
+
+msgid "Czech"
+msgstr "Checo"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Danés"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr "Bajo sorbio"
+
+msgid "Greek"
+msgstr "Griego"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr "Inglés australiano"
+
+msgid "British English"
+msgstr "Inglés británico"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Español"
+
+msgid "Argentinian Spanish"
+msgstr "Español de Argentina"
+
+msgid "Colombian Spanish"
+msgstr "Español de Colombia"
+
+msgid "Mexican Spanish"
+msgstr "Español de México"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español de Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Español de Venezuela"
+
+msgid "Estonian"
+msgstr "Estonio"
+
+msgid "Basque"
+msgstr "Vasco"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisón"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr "Gaélico Escocés"
+
+msgid "Galician"
+msgstr "Gallego"
+
+msgid "Hebrew"
+msgstr "Hebreo"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr "Alto sorbio"
+
+msgid "Hungarian"
+msgstr "Húngaro"
+
+msgid "Armenian"
+msgstr "Armenio"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesio"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italiano"
+
+msgid "Japanese"
+msgstr "Japonés"
+
+msgid "Georgian"
+msgstr "Georgiano"
+
+msgid "Kabyle"
+msgstr "Cabilio"
+
+msgid "Kazakh"
+msgstr "Kazajo"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Coreano"
+
+msgid "Kyrgyz"
+msgstr "Kirguís"
+
+msgid "Luxembourgish"
+msgstr "Luxenburgués"
+
+msgid "Lithuanian"
+msgstr "Lituano"
+
+msgid "Latvian"
+msgstr "Letón"
+
+msgid "Macedonian"
+msgstr "Macedonio"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr "Maratí"
+
+msgid "Malay"
+msgstr "Malayo"
+
+msgid "Burmese"
+msgstr "Birmano"
+
+msgid "Norwegian Bokmål"
+msgstr "Bokmål noruego"
+
+msgid "Nepali"
+msgstr "Nepalí"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nynorsk"
+
+msgid "Ossetic"
+msgstr "Osetio"
+
+msgid "Punjabi"
+msgstr "Panyabí"
+
+msgid "Polish"
+msgstr "Polaco"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués de Brasil"
+
+msgid "Romanian"
+msgstr "Rumano"
+
+msgid "Russian"
+msgstr "Ruso"
+
+msgid "Slovak"
+msgstr "Eslovaco"
+
+msgid "Slovenian"
+msgstr "Esloveno"
+
+msgid "Albanian"
+msgstr "Albanés"
+
+msgid "Serbian"
+msgstr "Serbio"
+
+msgid "Serbian Latin"
+msgstr "Serbio latino"
+
+msgid "Swedish"
+msgstr "Sueco"
+
+msgid "Swahili"
+msgstr "Suajili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr "Tayiko"
+
+msgid "Thai"
+msgstr "Tailandés"
+
+msgid "Turkmen"
+msgstr "Turcomanos"
+
+msgid "Turkish"
+msgstr "Turco"
+
+msgid "Tatar"
+msgstr "Tártaro"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Uyghur"
+msgstr "Uigur"
+
+msgid "Ukrainian"
+msgstr "Ucraniano"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Uzbeko"
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chino simplificado"
+
+msgid "Traditional Chinese"
+msgstr "Chino tradicional"
+
+msgid "Messages"
+msgstr "Mensajes"
+
+msgid "Site Maps"
+msgstr "Mapas del sitio"
+
+msgid "Static Files"
+msgstr "Archivos estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Este número de página no es un entero"
+
+msgid "That page number is less than 1"
+msgstr "Este número de página es menor que 1"
+
+msgid "That page contains no results"
+msgstr "Esa página no contiene resultados"
+
+msgid "Enter a valid value."
+msgstr "Introduzca un valor válido."
+
+msgid "Enter a valid domain name."
+msgstr "Ingrese un nombre de dominio válido."
+
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+msgid "Enter a valid integer."
+msgstr "Introduzca un número entero válido."
+
+msgid "Enter a valid email address."
+msgstr "Introduzca una dirección de correo electrónico válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Introduzca un 'slug' válido, consistente en letras, números, guiones bajos o "
+"medios."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Introduzca un 'slug' válido, consistente en letras, números, guiones bajos o "
+"medios de Unicode."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Ingrese una dirección de %(protocol)s válida."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 o IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo dígitos separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Asegúrese de que este valor es %(limit_value)s (actualmente es "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor es menor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor es mayor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Asegúrese de que este valor es múltiplo de %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Asegúrese de que este valor sea un múltiplo del tamaño del "
+"paso%(limit_value)s, comenzando en%(offset)s, p.ej. %(offset)s, "
+"%(valid_value1)s, %(valid_value2)s, etcétera."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga al menos %(limit_value)d caracter (tiene "
+"%(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) "
+"(tiene%(show_value)d)."
+msgstr[2] ""
+"Asegúrese de que este valor tenga al menos %(limit_value)d carácter(es) "
+"(tiene%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga menos de %(limit_value)d caracter (tiene "
+"%(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene "
+"%(show_value)d)."
+msgstr[2] ""
+"Asegúrese de que este valor tenga menos de %(limit_value)d caracteres (tiene "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrese de que no hay más de %(max)s dígito en total."
+msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos en total."
+msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrese de que no haya más de %(max)s dígito decimal."
+msgstr[1] "Asegúrese de que no haya más de %(max)s dígitos decimales."
+msgstr[2] "Asegúrese de que no haya más de %(max)s dígitos decimales."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrese de que no haya más de %(max)s dígito antes del punto decimal"
+msgstr[1] ""
+"Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal."
+msgstr[2] ""
+"Asegúrese de que no haya más de %(max)s dígitos antes del punto decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"La extensión de archivo “%(extension)s” no esta permitida. Las extensiones "
+"permitidas son: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Los caracteres nulos no están permitidos."
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s con este %(field_labels)s ya existe."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "No se cumple la restricción \"%(name)s\"."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Valor %(value)r no es una opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo no puede estar vacío."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Ya existe %(model_name)s con este %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Campo de tipo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s”: el valor debe ser Verdadero o Falso."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "“%(value)s”: el valor debe ser Verdadero, Falso o Nulo."
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Cadena (ilimitado)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separados por coma"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s” : el valor tiene un formato de fecha inválido. Debería estar en "
+"el formato YYYY-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s” : el valor tiene el formato correcto (YYYY-MM-DD) pero es una "
+"fecha inválida."
+
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato "
+"YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"“%(value)s”: el valor tiene el formato correcto (YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ]) pero es una fecha inválida."
+
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s”: el valor debe ser un número decimal."
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato "
+"[DD] [[HH:]MM:]ss[.uuuuuu]"
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Correo electrónico"
+
+msgid "File path"
+msgstr "Ruta de fichero"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s”: el valor debería ser un número de coma flotante."
+
+msgid "Floating point number"
+msgstr "Número en coma flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "“%(value)s”: el valor debería ser un numero entero"
+
+msgid "Integer"
+msgstr "Entero"
+
+msgid "Big (8 byte) integer"
+msgstr "Entero grande (8 bytes)"
+
+msgid "Small integer"
+msgstr "Entero corto"
+
+msgid "IPv4 address"
+msgstr "Dirección IPv4"
+
+msgid "IP address"
+msgstr "Dirección IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s”: el valor debería ser None, Verdadero o Falso."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+msgid "Positive big integer"
+msgstr "Entero grande positivo"
+
+msgid "Positive integer"
+msgstr "Entero positivo"
+
+msgid "Positive small integer"
+msgstr "Entero positivo corto"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (hasta %(max_length)s)"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s”: el valor tiene un formato inválido. Debería estar en el formato "
+"HH:MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s” : el valor tiene el formato correcto (HH:MM[:ss[.uuuuuu]]) pero "
+"es un tiempo inválido."
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos binarios en bruto"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” no es un UUID válido."
+
+msgid "Universally unique identifier"
+msgstr "Identificador universal único"
+
+msgid "File"
+msgstr "Archivo"
+
+msgid "Image"
+msgstr "Imagen"
+
+msgid "A JSON object"
+msgstr "Un objeto JSON"
+
+msgid "Value must be valid JSON."
+msgstr "El valor debe ser un objeto JSON válido."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+"La instancia de %(model)s con %(field)s %(value)r no es una opción válida."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave foránea (tipo determinado por el campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación uno-a-uno"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "relación %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "relaciones %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relación muchos-a-muchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+msgid "Enter a valid time."
+msgstr "Introduzca una hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Introduzca una fecha/hora válida."
+
+msgid "Enter a valid duration."
+msgstr "Introduzca una duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "El número de días debe estar entre {min_days} y {max_days}."
+
+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."
+
+msgid "No file was submitted."
+msgstr "No se ha enviado ningún fichero"
+
+msgid "The submitted file is empty."
+msgstr "El fichero enviado está vacío."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracter "
+"(tiene %(length)d)."
+msgstr[1] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d "
+"carácter(es) (tiene %(length)d)."
+msgstr[2] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d "
+"carácter(es) (tiene %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Por favor envíe un fichero o marque la casilla de limpiar, pero no ambos."
+
+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."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Introduzca un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Introduzca un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr "Ingresa un JSON válido."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) *%(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Los datos de ManagementForm faltan o han sido alterados. Campos que faltan: "
+"%(field_names)s. Es posible que deba presentar un informe de error si el "
+"problema persiste."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Por favor, envíe %(num)d formulario como máximo."
+msgstr[1] "Por favor, envíe %(num)d formularios como máximo."
+msgstr[2] "Por favor, envíe %(num)d formularios como máximo."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Por favor, envíe %(num)d formulario como mínimo."
+msgstr[1] "Por favor, envíe %(num)d formularios como mínimo."
+msgstr[2] "Por favor, envíe %(num)d formularios como mínimo."
+
+msgid "Order"
+msgstr "Orden"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, corrija el dato duplicado para %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor corrija el dato duplicado para %(field)s, ya que debe ser único."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor corrija los datos duplicados para %(field_name)s ya que debe ser "
+"único para %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, corrija los valores duplicados abajo."
+
+msgid "The inline value did not match the parent instance."
+msgstr "El valor en línea no coincide con la instancia padre."
+
+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."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” no es un valor válido."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s no pudo ser interpretado en la zona horaria "
+"%(current_timezone)s; podría ser ambiguo o no existir."
+
+msgid "Clear"
+msgstr "Limpiar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Modificar"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "sí,no,quizás"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+msgstr[2] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoche"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "lunes"
+
+msgid "Tuesday"
+msgstr "martes"
+
+msgid "Wednesday"
+msgstr "miércoles"
+
+msgid "Thursday"
+msgstr "jueves"
+
+msgid "Friday"
+msgstr "viernes"
+
+msgid "Saturday"
+msgstr "sábado"
+
+msgid "Sunday"
+msgstr "domingo"
+
+msgid "Mon"
+msgstr "lun"
+
+msgid "Tue"
+msgstr "mar"
+
+msgid "Wed"
+msgstr "mié"
+
+msgid "Thu"
+msgstr "jue"
+
+msgid "Fri"
+msgstr "vie"
+
+msgid "Sat"
+msgstr "sáb"
+
+msgid "Sun"
+msgstr "dom"
+
+msgid "January"
+msgstr "enero"
+
+msgid "February"
+msgstr "febrero"
+
+msgid "March"
+msgstr "marzo"
+
+msgid "April"
+msgstr "abril"
+
+msgid "May"
+msgstr "mayo"
+
+msgid "June"
+msgstr "junio"
+
+msgid "July"
+msgstr "julio"
+
+msgid "August"
+msgstr "agosto"
+
+msgid "September"
+msgstr "septiembre"
+
+msgid "October"
+msgstr "octubre"
+
+msgid "November"
+msgstr "noviembre"
+
+msgid "December"
+msgstr "diciembre"
+
+msgid "jan"
+msgstr "ene"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dic"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ene."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "mayo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "junio"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "julio"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "dic."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "enero"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "febrero"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "mayo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "septiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "noviembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "diciembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "No es una dirección IPv6 válida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d año"
+msgstr[1] "%(num)d años"
+msgstr[2] "%(num)d años"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mes"
+msgstr[1] "%(num)d meses"
+msgstr[2] "%(num)d meses"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d semana"
+msgstr[1] "%(num)d semanas"
+msgstr[2] "%(num)d semanas"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d día"
+msgstr[1] "%(num)d días"
+msgstr[2] "%(num)d días"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hora"
+msgstr[1] "%(num)d horas"
+msgstr[2] "%(num)d horas"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuto"
+msgstr[1] "%(num)d minutos"
+msgstr[2] "%(num)d minutos"
+
+msgid "Forbidden"
+msgstr "Prohibido"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "La verificación CSRF ha fallado. Solicitud abortada."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Estás viendo este mensaje porque este sitio HTTPS requiere que tu navegador "
+"web envíe un \"encabezado de referencia\", pero no se envió ninguno. Este "
+"encabezado es necesario por razones de seguridad, para garantizar que su "
+"navegador no sea secuestrado por terceros."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Si ha configurado su navegador para deshabilitar los encabezados "
+"\"Referer\", vuelva a habilitarlos, al menos para este sitio, o para "
+"conexiones HTTPS, o para solicitudes del \"mismo origen\"."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Si esta utilizando la etiqueta o incluyendo el encabezado \"Referrer-Policy: no-referrer\", "
+"elimínelos. La protección CSRF requiere que el encabezado \"Referer\" "
+"realice una comprobación estricta del referente. Si le preocupa la "
+"privacidad, utilice alternativas como para los "
+"enlaces a sitios de terceros."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se "
+"envían formularios. Esta cookie se necesita por razones de seguridad, para "
+"asegurar que tu navegador no ha sido comprometido por terceras partes."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Si ha configurado su navegador para deshabilitar las cookies, vuelva a "
+"habilitarlas, al menos para este sitio o para solicitudes del \"mismo "
+"origen\"."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Más información disponible si se establece DEBUG=True."
+
+msgid "No year specified"
+msgstr "No se ha indicado el año"
+
+msgid "Date out of range"
+msgstr "Fecha fuera de rango"
+
+msgid "No month specified"
+msgstr "No se ha indicado el mes"
+
+msgid "No day specified"
+msgstr "No se ha indicado el día"
+
+msgid "No week specified"
+msgstr "No se ha indicado la semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No %(verbose_name_plural)s disponibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Los futuros %(verbose_name_plural)s no están disponibles porque "
+"%(class_name)s.allow_future es Falso."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Cadena de fecha no valida “%(datestr)s” dado el formato “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "La página no es la \"última\", ni se puede convertir a un entero."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Página inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Lista vacía y “%(class_name)s.allow_empty” es Falso"
+
+msgid "Directory indexes are not allowed here."
+msgstr "Los índices de directorio no están permitidos."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” no existe"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índice de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "¡La instalación funcionó con éxito! ¡Felicitaciones!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Ve la notas de la versión de Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Estás viendo esta página porque DEBUG=True está en su archivo de configuración y no ha "
+"configurado ninguna URL."
+
+msgid "Django Documentation"
+msgstr "Documentación de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Temas, referencias, & como hacer"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: Una aplicación de encuesta"
+
+msgid "Get started with Django"
+msgstr "Comienza con Django"
+
+msgid "Django Community"
+msgstr "Comunidad Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Conéctate, obtén ayuda o contribuye"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..76f653db
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..21d47b44
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/formats.py
new file mode 100644
index 00000000..f2716bb0
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es/formats.py
@@ -0,0 +1,30 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '31/12/2009'
+ "%d/%m/%y", # '31/12/09'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..c4130b77
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po
new file mode 100644
index 00000000..543a7d27
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/LC_MESSAGES/django.po
@@ -0,0 +1,1378 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jannis Leidel , 2011
+# lardissone , 2014
+# Natalia, 2023
+# poli , 2014
+# Ramiro Morales, 2013-2025
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Ramiro Morales, 2013-2025\n"
+"Language-Team: Spanish (Argentina) (http://app.transifex.com/django/django/"
+"language/es_AR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_AR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "afrikáans"
+
+msgid "Arabic"
+msgstr "árabe"
+
+msgid "Algerian Arabic"
+msgstr "Árabe de Argelia"
+
+msgid "Asturian"
+msgstr "asturiano"
+
+msgid "Azerbaijani"
+msgstr "azerbaiyán"
+
+msgid "Bulgarian"
+msgstr "búlgaro"
+
+msgid "Belarusian"
+msgstr "bielorruso"
+
+msgid "Bengali"
+msgstr "bengalí"
+
+msgid "Breton"
+msgstr "bretón"
+
+msgid "Bosnian"
+msgstr "bosnio"
+
+msgid "Catalan"
+msgstr "catalán"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Kurdo central (Sorani)"
+
+msgid "Czech"
+msgstr "checo"
+
+msgid "Welsh"
+msgstr "galés"
+
+msgid "Danish"
+msgstr "danés"
+
+msgid "German"
+msgstr "alemán"
+
+msgid "Lower Sorbian"
+msgstr "bajo sorabo"
+
+msgid "Greek"
+msgstr "griego"
+
+msgid "English"
+msgstr "inglés"
+
+msgid "Australian English"
+msgstr "inglés australiano"
+
+msgid "British English"
+msgstr "inglés británico"
+
+msgid "Esperanto"
+msgstr "esperanto"
+
+msgid "Spanish"
+msgstr "español"
+
+msgid "Argentinian Spanish"
+msgstr "español (Argentina)"
+
+msgid "Colombian Spanish"
+msgstr "español (Colombia)"
+
+msgid "Mexican Spanish"
+msgstr "español (México)"
+
+msgid "Nicaraguan Spanish"
+msgstr "español (Nicaragua)"
+
+msgid "Venezuelan Spanish"
+msgstr "español (Venezuela)"
+
+msgid "Estonian"
+msgstr "estonio"
+
+msgid "Basque"
+msgstr "vasco"
+
+msgid "Persian"
+msgstr "persa"
+
+msgid "Finnish"
+msgstr "finlandés"
+
+msgid "French"
+msgstr "francés"
+
+msgid "Frisian"
+msgstr "frisón"
+
+msgid "Irish"
+msgstr "irlandés"
+
+msgid "Scottish Gaelic"
+msgstr "gaélico escocés"
+
+msgid "Galician"
+msgstr "gallego"
+
+msgid "Hebrew"
+msgstr "hebreo"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "croata"
+
+msgid "Upper Sorbian"
+msgstr "alto sorabo"
+
+msgid "Hungarian"
+msgstr "húngaro"
+
+msgid "Armenian"
+msgstr "armenio"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "indonesio"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "ido"
+
+msgid "Icelandic"
+msgstr "islandés"
+
+msgid "Italian"
+msgstr "italiano"
+
+msgid "Japanese"
+msgstr "japonés"
+
+msgid "Georgian"
+msgstr "georgiano"
+
+msgid "Kabyle"
+msgstr "cabilio"
+
+msgid "Kazakh"
+msgstr "kazajo"
+
+msgid "Khmer"
+msgstr "jémer"
+
+msgid "Kannada"
+msgstr "canarés"
+
+msgid "Korean"
+msgstr "coreano"
+
+msgid "Kyrgyz"
+msgstr "kirguís"
+
+msgid "Luxembourgish"
+msgstr "luxemburgués"
+
+msgid "Lithuanian"
+msgstr "lituano"
+
+msgid "Latvian"
+msgstr "letón"
+
+msgid "Macedonian"
+msgstr "macedonio"
+
+msgid "Malayalam"
+msgstr "malabar"
+
+msgid "Mongolian"
+msgstr "mongol"
+
+msgid "Marathi"
+msgstr "maratí"
+
+msgid "Malay"
+msgstr "malayo"
+
+msgid "Burmese"
+msgstr "burmés"
+
+msgid "Norwegian Bokmål"
+msgstr "bokmål noruego"
+
+msgid "Nepali"
+msgstr "nepalés"
+
+msgid "Dutch"
+msgstr "holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "nynorsk"
+
+msgid "Ossetic"
+msgstr "osetio"
+
+msgid "Punjabi"
+msgstr "panyabí"
+
+msgid "Polish"
+msgstr "polaco"
+
+msgid "Portuguese"
+msgstr "portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "portugués de Brasil"
+
+msgid "Romanian"
+msgstr "rumano"
+
+msgid "Russian"
+msgstr "ruso"
+
+msgid "Slovak"
+msgstr "eslovaco"
+
+msgid "Slovenian"
+msgstr "esloveno"
+
+msgid "Albanian"
+msgstr "albanés"
+
+msgid "Serbian"
+msgstr "serbio"
+
+msgid "Serbian Latin"
+msgstr "latín de Serbia"
+
+msgid "Swedish"
+msgstr "sueco"
+
+msgid "Swahili"
+msgstr "suajili"
+
+msgid "Tamil"
+msgstr "tamil"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Tajik"
+msgstr "tayiko"
+
+msgid "Thai"
+msgstr "tailandés"
+
+msgid "Turkmen"
+msgstr "turcomano"
+
+msgid "Turkish"
+msgstr "turco"
+
+msgid "Tatar"
+msgstr "tártaro"
+
+msgid "Udmurt"
+msgstr "udmurto"
+
+msgid "Uyghur"
+msgstr "Uigur"
+
+msgid "Ukrainian"
+msgstr "ucraniano"
+
+msgid "Urdu"
+msgstr "urdu"
+
+msgid "Uzbek"
+msgstr "uzbeko"
+
+msgid "Vietnamese"
+msgstr "vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "chino simplificado"
+
+msgid "Traditional Chinese"
+msgstr "chino tradicional"
+
+msgid "Messages"
+msgstr "Mensajes"
+
+msgid "Site Maps"
+msgstr "Mapas de sitio"
+
+msgid "Static Files"
+msgstr "Archivos estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "El número de página no es un entero"
+
+msgid "That page number is less than 1"
+msgstr "El número de página es menor a 1"
+
+msgid "That page contains no results"
+msgstr "Esa página no contiene resultados"
+
+msgid "Enter a valid value."
+msgstr "Introduzca un valor válido."
+
+msgid "Enter a valid domain name."
+msgstr "Introduzca un nombre de dominio válido."
+
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+msgid "Enter a valid integer."
+msgstr "Introduzca un valor numérico entero válido."
+
+msgid "Enter a valid email address."
+msgstr "Introduzca una dirección de email válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr "Introduzca un “slug” válido compuesto por letras, números o guiones."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Introduzca un “slug” compuesto por letras Unicode, números, guiones bajos o "
+"guiones."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Introduzca una dirección de %(protocol)s válida."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 o IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo dígitos separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Asegúrese de que este valor sea %(limit_value)s (actualmente es "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Asegúrese de que este valor sea múltiplo de %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Confirme que este valor sea un múltiplo del tamaño del paso %(limit_value)s, "
+"empezando por %(offset)s, por ejemplo %(offset)s, %(valid_value1)s, "
+"%(valid_value2)s, y así sucesivamente."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+msgstr[2] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+msgstr[2] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrese de que no exista en total mas de %(max)s dígito."
+msgstr[1] "Asegúrese de que no existan en total mas de %(max)s dígitos."
+msgstr[2] "Asegúrese de que no existan en total mas de %(max)s dígitos."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrese de que no exista mas de %(max)s lugar decimal."
+msgstr[1] "Asegúrese de que no existan mas de %(max)s lugares decimales."
+msgstr[2] "Asegúrese de que no existan mas de %(max)s lugares decimales."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrese de que no exista mas de %(max)s dígito antes del punto decimal."
+msgstr[1] ""
+"Asegúrese de que no existan mas de %(max)s dígitos antes del punto decimal."
+msgstr[2] ""
+"Asegúrese de que no existan mas de %(max)s dígitos antes del punto decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"La extensión de archivo “%(extension)s” no está permitida. Las extensiones "
+"aceptadas son: “%(allowed_extensions)s”."
+
+msgid "Null characters are not allowed."
+msgstr "No se admiten caracteres nulos."
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Ya existe un/a %(model_name)s con este/a %(field_labels)s."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "No se cumple la restricción “%(name)s”."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "El valor %(value)r no es una opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo no puede estar en blanco."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s debe ser único/a para un %(lookup_type)s "
+"%(date_field_label)s determinado."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Campo tipo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "El valor de “%(value)s” debe ser Verdadero o Falso."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "El valor de “%(value)s” debe ser Verdadero, Falso o None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Cadena (ilimitado)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"El valor de “%(value)s” tiene un formato de fecha inválido. Debe usar el "
+"formato AAAA-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"El valor de “%(value)s” tiene un formato de fecha correcto (AAAA-MM-DD) pero "
+"representa una fecha inválida."
+
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato AAAA-"
+"MM-DD HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"El valor de “%(value)s” tiene un formato correcto (AAAA-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ]) pero representa una fecha/hora inválida."
+
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "El valor de “%(value)s” debe ser un número decimal."
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato [DD] "
+"[[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
+
+msgid "File path"
+msgstr "Ruta de archivo"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "El valor de “%(value)s” debe ser un número de coma flotante."
+
+msgid "Floating point number"
+msgstr "Número de coma flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "El valor de “%(value)s” debe ser un número entero."
+
+msgid "Integer"
+msgstr "Entero"
+
+msgid "Big (8 byte) integer"
+msgstr "Entero grande (8 bytes)"
+
+msgid "Small integer"
+msgstr "Entero pequeño"
+
+msgid "IPv4 address"
+msgstr "Dirección IPv4"
+
+msgid "IP address"
+msgstr "Dirección IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "El valor de “%(value)s” debe ser None, Verdadero o Falso."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+msgid "Positive big integer"
+msgstr "Entero grande positivo"
+
+msgid "Positive integer"
+msgstr "Entero positivo"
+
+msgid "Positive small integer"
+msgstr "Entero pequeño positivo"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (de hasta %(max_length)s caracteres)"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"El valor de “%(value)s” tiene un formato inválido. Debe usar el formato HH:"
+"MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"El valor de “%(value)s” tiene un formato correcto (HH:MM[:ss[.uuuuuu]]) pero "
+"representa una hora inválida."
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos binarios crudos"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” no es un UUID válido."
+
+msgid "Universally unique identifier"
+msgstr "Identificador universalmente único"
+
+msgid "File"
+msgstr "Archivo"
+
+msgid "Image"
+msgstr "Imagen"
+
+msgid "A JSON object"
+msgstr "Un objeto JSON"
+
+msgid "Value must be valid JSON."
+msgstr "El valor debe ser JSON válido."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+"La instancia de %(model)s con %(field)s %(value)r no es una opción válida."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave foránea (el tipo está determinado por el campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación uno-a-uno"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "relación %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "relaciones %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relación muchos-a-muchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+msgid "Enter a valid time."
+msgstr "Introduzca un valor de hora válido."
+
+msgid "Enter a valid date/time."
+msgstr "Introduzca un valor de fecha/hora válido."
+
+msgid "Enter a valid duration."
+msgstr "Introduzca una duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "La cantidad de días debe tener valores entre {min_days} y {max_days}."
+
+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."
+
+msgid "No file was submitted."
+msgstr "No se envió ningún archivo."
+
+msgid "The submitted file is empty."
+msgstr "El archivo enviado está vacío."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d carácter "
+"(tiene %(length)d)."
+msgstr[1] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres "
+"(tiene %(length)d)."
+msgstr[2] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres "
+"(tiene %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Por favor envíe un archivo o active el checkbox, pero no ambas cosas."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Seleccione una imagen válida. El archivo que ha seleccionado no es una "
+"imagen o es un archivo de imagen corrupto."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Introduzca un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Introduzca un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr "Introduzca JSON válido."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Los datos de ManagementForm faltan o han sido alterados. Campos faltantes: "
+"%(field_names)s. Si el problema persiste es posible que deba reportarlo como "
+"un error."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Por favor envíe un máximo de %(num)d formulario."
+msgstr[1] "Por favor envíe un máximo de %(num)d formularios."
+msgstr[2] "Por favor envíe un máximo de %(num)d formularios."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Por favor envíe %(num)d o mas formularios."
+msgstr[1] "Por favor envíe %(num)d o mas formularios."
+msgstr[2] "Por favor envíe %(num)d o mas formularios."
+
+msgid "Order"
+msgstr "Ordenar"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, corrija la información duplicada en %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor corrija la información duplicada en %(field)s, que debe ser única."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor corrija la información duplicada en %(field_name)s que debe ser "
+"única para el %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, corrija los valores duplicados detallados mas abajo."
+
+msgid "The inline value did not match the parent instance."
+msgstr "El valor inline no coincide con el de la instancia padre."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Seleccione una opción válida. La opción seleccionada no es una de las "
+"disponibles."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” no es un valor válido."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s no puede ser interpretado en la zona horaria "
+"%(current_timezone)s; ya que podría ser ambiguo o podría no existir."
+
+msgid "Clear"
+msgstr "Eliminar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Modificar"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "si,no,talvez"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+msgstr[2] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoche"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "lunes"
+
+msgid "Tuesday"
+msgstr "martes"
+
+msgid "Wednesday"
+msgstr "miércoles"
+
+msgid "Thursday"
+msgstr "jueves"
+
+msgid "Friday"
+msgstr "viernes"
+
+msgid "Saturday"
+msgstr "sábado"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "Mon"
+msgstr "Lun"
+
+msgid "Tue"
+msgstr "Mar"
+
+msgid "Wed"
+msgstr "Mie"
+
+msgid "Thu"
+msgstr "Jue"
+
+msgid "Fri"
+msgstr "Vie"
+
+msgid "Sat"
+msgstr "Sab"
+
+msgid "Sun"
+msgstr "Dom"
+
+msgid "January"
+msgstr "enero"
+
+msgid "February"
+msgstr "febrero"
+
+msgid "March"
+msgstr "marzo"
+
+msgid "April"
+msgstr "abril"
+
+msgid "May"
+msgstr "mayo"
+
+msgid "June"
+msgstr "junio"
+
+msgid "July"
+msgstr "julio"
+
+msgid "August"
+msgstr "agosto"
+
+msgid "September"
+msgstr "setiembre"
+
+msgid "October"
+msgstr "octubre"
+
+msgid "November"
+msgstr "noviembre"
+
+msgid "December"
+msgstr "diciembre"
+
+msgid "jan"
+msgstr "ene"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "set"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dic"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Enero"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Set."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dic."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "enero"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "febrero"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "mayo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "setiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "noviembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "diciembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Esta no es una dirección IPv6 válida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d año"
+msgstr[1] "%(num)d años"
+msgstr[2] "%(num)d años"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mes"
+msgstr[1] "%(num)d meses"
+msgstr[2] "%(num)d meses"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d semana"
+msgstr[1] "%(num)d semanas"
+msgstr[2] "%(num)d semanas"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d día"
+msgstr[1] "%(num)d días"
+msgstr[2] "%(num)d días"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hora"
+msgstr[1] "%(num)d horas"
+msgstr[2] "%(num)d horas"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuto"
+msgstr[1] "%(num)d minutos"
+msgstr[2] "%(num)d minutos"
+
+msgid "Forbidden"
+msgstr "Prohibido"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Verificación CSRF fallida. Petición abortada."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Ud. está viendo este mensaje porque este sitio HTTPS tiene como "
+"requerimiento que su navegador web envíe un encabezado “Referer” pero el "
+"mismo no ha enviado uno. El hecho de que este encabezado sea obligatorio es "
+"una medida de seguridad para comprobar que su navegador no está siendo "
+"controlado por terceros."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Si ha configurado su browser para deshabilitar las cabeceras “Referer”, por "
+"favor activelas al menos para este sitio, o para conexiones HTTPS o para "
+"peticiones generadas desde el mismo origen."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Si está usando la etiqueta "
+"o está incluyendo el encabezado “Referrer-Policy: no-referrer” por favor "
+"quitelos. La protección CSRF necesita el encabezado “Referer” para realizar "
+"una comprobación estricta de los referers. Si le preocupa la privacidad "
+"tiene alternativas tales como usar en los enlaces a "
+"sitios de terceros."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Ud. está viendo este mensaje porque este sitio tiene como requerimiento el "
+"uso de una 'cookie' CSRF cuando se envíen formularios. El hecho de que esta "
+"'cookie' sea obligatoria es una medida de seguridad para comprobar que su "
+"browser no está siendo controlado por terceros."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Si ha configurado su browser para deshabilitar “cookies”, por favor "
+"activelas al menos para este sitio o para peticiones generadas desde el "
+"mismo origen."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Hay mas información disponible. Para ver la misma use DEBUG=True."
+
+msgid "No year specified"
+msgstr "No se ha especificado el valor año"
+
+msgid "Date out of range"
+msgstr "Fecha fuera de rango"
+
+msgid "No month specified"
+msgstr "No se ha especificado el valor mes"
+
+msgid "No day specified"
+msgstr "No se ha especificado el valor día"
+
+msgid "No week specified"
+msgstr "No se ha especificado el valor semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No hay %(verbose_name_plural)s disponibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"No hay %(verbose_name_plural)s futuros disponibles porque %(class_name)s."
+"allow_future tiene el valor False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Cadena de fecha inválida “%(datestr)s”, formato “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No se han encontrado %(verbose_name)s que coincidan con la consulta "
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Página debe tener el valor “last” o un valor número entero."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Página inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Lista vacía y “%(class_name)s.allow_empty” tiene el valor False."
+
+msgid "Directory indexes are not allowed here."
+msgstr ""
+"No está habilitada la generación de listados de directorios en esta "
+"ubicación."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” no existe"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Listado de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "La instalación ha sido exitosa. ¡Felicitaciones!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Ver las release notes de Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Está viendo esta página porque el archivo de configuración contiene DEBUG=True y no ha configurado "
+"ninguna URL."
+
+msgid "Django Documentation"
+msgstr "Documentación de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Tópicos, referencia & how-to’s"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: Una app de encuesta"
+
+msgid "Get started with Django"
+msgstr "Comience a aprender Django"
+
+msgid "Django Community"
+msgstr "Comunidad Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Conéctese, consiga ayuda o contribuya"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..1e38e262
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..14c5f800
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/formats.py
new file mode 100644
index 00000000..601b4584
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_AR/formats.py
@@ -0,0 +1,30 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"j N Y"
+TIME_FORMAT = r"H:i"
+DATETIME_FORMAT = r"j N Y H:i"
+YEAR_MONTH_FORMAT = r"F Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = r"d/m/Y"
+SHORT_DATETIME_FORMAT = r"d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 0 # 0: Sunday, 1: Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '31/12/2009'
+ "%d/%m/%y", # '31/12/09'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..678fdc71
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po
new file mode 100644
index 00000000..9f839fea
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/LC_MESSAGES/django.po
@@ -0,0 +1,1258 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Carlos Muñoz , 2015
+# Claude Paroz , 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-05-19 20:23+0200\n"
+"PO-Revision-Date: 2020-07-14 21:42+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Spanish (Colombia) (http://www.transifex.com/django/django/"
+"language/es_CO/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_CO\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikáans"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Algerian Arabic"
+msgstr ""
+
+msgid "Asturian"
+msgstr "Asturiano"
+
+msgid "Azerbaijani"
+msgstr "Azerí"
+
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+msgid "Belarusian"
+msgstr "Bielorruso"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "Bretón"
+
+msgid "Bosnian"
+msgstr "Bosnio"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Czech"
+msgstr "Checo"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Danés"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "Griego"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr "Inglés Australiano"
+
+msgid "British English"
+msgstr "Inglés Británico"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Español"
+
+msgid "Argentinian Spanish"
+msgstr "Español de Argentina"
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr "Español de México"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español de Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Español venezolano"
+
+msgid "Estonian"
+msgstr "Estonio"
+
+msgid "Basque"
+msgstr "Vasco"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisón"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "Gallego"
+
+msgid "Hebrew"
+msgstr "Hebreo"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "Húngaro"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesio"
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italiano"
+
+msgid "Japanese"
+msgstr "Japonés"
+
+msgid "Georgian"
+msgstr "Georgiano"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "Kazajo"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Koreano"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "Luxenburgués"
+
+msgid "Lithuanian"
+msgstr "Lituano"
+
+msgid "Latvian"
+msgstr "Letón"
+
+msgid "Macedonian"
+msgstr "Macedonio"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr "Maratí"
+
+msgid "Burmese"
+msgstr "Birmano"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Nepalí"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nynorsk"
+
+msgid "Ossetic"
+msgstr "Osetio"
+
+msgid "Punjabi"
+msgstr "Panyabí"
+
+msgid "Polish"
+msgstr "Polaco"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués brasileño"
+
+msgid "Romanian"
+msgstr "Rumano"
+
+msgid "Russian"
+msgstr "Ruso"
+
+msgid "Slovak"
+msgstr "Eslovaco"
+
+msgid "Slovenian"
+msgstr "Esloveno"
+
+msgid "Albanian"
+msgstr "Albanés"
+
+msgid "Serbian"
+msgstr "Serbio"
+
+msgid "Serbian Latin"
+msgstr "Serbio latino"
+
+msgid "Swedish"
+msgstr "Sueco"
+
+msgid "Swahili"
+msgstr "Suajili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Tailandés"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turco"
+
+msgid "Tatar"
+msgstr "Tártaro"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Ukrainian"
+msgstr "Ucraniano"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chino simplificado"
+
+msgid "Traditional Chinese"
+msgstr "Chino tradicional"
+
+msgid "Messages"
+msgstr "Mensajes"
+
+msgid "Site Maps"
+msgstr "Mapas del sitio"
+
+msgid "Static Files"
+msgstr "Archivos estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Ingrese un valor válido."
+
+msgid "Enter a valid URL."
+msgstr "Ingrese una URL válida."
+
+msgid "Enter a valid integer."
+msgstr "Ingrese un entero válido."
+
+msgid "Enter a valid email address."
+msgstr "Ingrese una dirección de correo electrónico válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Ingrese una dirección IPv4 válida."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Ingrese una dirección IPv6 válida."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Ingrese una dirección IPv4 o IPv6 válida."
+
+msgid "Enter only digits separated by commas."
+msgstr "Ingrese solo números separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Asegúrese de que este valor es %(limit_value)s (es %(show_value)s )."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Ingrese un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrese de que no hayan mas de %(max)s dígito en total."
+msgstr[1] "Asegúrese de que no hayan mas de %(max)s dígitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrese de que no hayan más de %(max)s decimal."
+msgstr[1] "Asegúrese de que no hayan más de %(max)s decimales."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrese de que no hayan más de %(max)s dígito antes del punto decimal."
+msgstr[1] ""
+"Asegúrese de que no hayan más de %(max)s dígitos antes del punto decimal"
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Ya existe un/a %(model_name)s con este/a %(field_labels)s."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Valor %(value)r no es una opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo no puede estar en blanco."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Tipo de campo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
+
+msgid "File path"
+msgstr "Ruta de archivo"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Número de punto flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Entero"
+
+msgid "Big (8 byte) integer"
+msgstr "Entero grande (8 bytes)"
+
+msgid "IPv4 address"
+msgstr "Dirección IPv4"
+
+msgid "IP address"
+msgstr "Dirección IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+msgid "Positive big integer"
+msgstr ""
+
+msgid "Positive integer"
+msgstr "Entero positivo"
+
+msgid "Positive small integer"
+msgstr "Entero positivo pequeño"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (hasta %(max_length)s)"
+
+msgid "Small integer"
+msgstr "Entero pequeño"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos de binarios brutos"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Archivo"
+
+msgid "Image"
+msgstr "Imagen"
+
+msgid "A JSON object"
+msgstr ""
+
+msgid "Value must be valid JSON."
+msgstr ""
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "La instancia del %(model)s con %(field)s %(value)r no existe."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Llave foránea (tipo determinado por el campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación uno-a-uno"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "Relación muchos-a-muchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+msgid "Enter a whole number."
+msgstr "Ingrese un número entero."
+
+msgid "Enter a valid date."
+msgstr "Ingrese una fecha válida."
+
+msgid "Enter a valid time."
+msgstr "Ingrese una hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Ingrese una fecha/hora válida."
+
+msgid "Enter a valid duration."
+msgstr "Ingrese una duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+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."
+
+msgid "No file was submitted."
+msgstr "No se ha enviado ningún fichero."
+
+msgid "The submitted file is empty."
+msgstr "El fichero enviado está vacío."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d carácter "
+"(tiene %(length)d)."
+msgstr[1] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres "
+"(tiene %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Por favor envíe un fichero o marque la casilla de limpiar, pero no ambos."
+
+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."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Ingrese una lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Ingrese un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Ingrese un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) *%(error)s"
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr "Los datos de ManagementForm faltan o han sido manipulados"
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] "Por favor, envíe %d o menos formularios."
+msgstr[1] "Por favor, envíe %d o menos formularios."
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] "Por favor, envíe %d o mas formularios."
+msgstr[1] "Por favor, envíe %d o mas formularios."
+
+msgid "Order"
+msgstr "Orden"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, corrija el dato duplicado para %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor corrija el dato duplicado para %(field)s, este debe ser único."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor corrija los datos duplicados para %(field_name)s este debe ser "
+"único para %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, corrija los valores duplicados abajo."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+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."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Limpiar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Cambiar"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "sí,no,quizás"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoche"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "Lunes"
+
+msgid "Tuesday"
+msgstr "Martes"
+
+msgid "Wednesday"
+msgstr "Miércoles"
+
+msgid "Thursday"
+msgstr "Jueves"
+
+msgid "Friday"
+msgstr "Viernes"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "Mon"
+msgstr "Lun"
+
+msgid "Tue"
+msgstr "Mar"
+
+msgid "Wed"
+msgstr "Mié"
+
+msgid "Thu"
+msgstr "Jue"
+
+msgid "Fri"
+msgstr "Vie"
+
+msgid "Sat"
+msgstr "Sáb"
+
+msgid "Sun"
+msgstr "Dom"
+
+msgid "January"
+msgstr "Enero"
+
+msgid "February"
+msgstr "Febrero"
+
+msgid "March"
+msgstr "Marzo"
+
+msgid "April"
+msgstr "Abril"
+
+msgid "May"
+msgstr "Mayo"
+
+msgid "June"
+msgstr "Junio"
+
+msgid "July"
+msgstr "Julio"
+
+msgid "August"
+msgstr "Agosto"
+
+msgid "September"
+msgstr "Septiembre"
+
+msgid "October"
+msgstr "Octubre"
+
+msgid "November"
+msgstr "Noviembre"
+
+msgid "December"
+msgstr "Diciembre"
+
+msgid "jan"
+msgstr "ene"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dic"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ene."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sep."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dic."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Enero"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Febrero"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Septiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Noviembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Diciembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Esta no es una dirección IPv6 válida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ","
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] "%d año"
+msgstr[1] "%d años"
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] "%d mes"
+msgstr[1] "%d meses"
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] "%d semana"
+msgstr[1] "%d semanas"
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "%d día"
+msgstr[1] "%d días"
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "%d hora"
+msgstr[1] "%d horas"
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "%d minuto"
+msgstr[1] "%d minutos"
+
+msgid "Forbidden"
+msgstr "Prohibido"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Verificación CSRF fallida. Solicitud abortada."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se "
+"envían formularios. Esta cookie se necesita por razones de seguridad, para "
+"asegurar que tu navegador no ha sido comprometido por terceras partes."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr "Se puede ver más información si se establece DEBUG=True."
+
+msgid "No year specified"
+msgstr "No se ha indicado el año"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "No se ha indicado el mes"
+
+msgid "No day specified"
+msgstr "No se ha indicado el día"
+
+msgid "No week specified"
+msgstr "No se ha indicado la semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No %(verbose_name_plural)s disponibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Los futuros %(verbose_name_plural)s no están disponibles porque "
+"%(class_name)s.allow_future es Falso."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Página inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Los índices de directorio no están permitidos."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índice de %(directory)s"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..f70729ed
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..c1db6574
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/formats.py
new file mode 100644
index 00000000..056d0ada
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_CO/formats.py
@@ -0,0 +1,26 @@
+# This file is distributed under the same license as the Django package.
+#
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 1
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ "%Y%m%d", # '20061025'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..42f26918
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.po
new file mode 100644
index 00000000..93b81a43
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/LC_MESSAGES/django.po
@@ -0,0 +1,1279 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Abe Estrada, 2011-2013
+# Claude Paroz , 2020
+# Gustavo López Hernández, 2022
+# Jesús Bautista , 2019-2020
+# Sergio Benitez , 2021
+# zodman , 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
+"PO-Revision-Date: 2022-07-25 06:49+0000\n"
+"Last-Translator: Gustavo López Hernández\n"
+"Language-Team: Spanish (Mexico) (http://www.transifex.com/django/django/"
+"language/es_MX/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_MX\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "afrikáans"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Algerian Arabic"
+msgstr "Árabe argelino"
+
+msgid "Asturian"
+msgstr "Asturiano"
+
+msgid "Azerbaijani"
+msgstr "Azerbaijani"
+
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+msgid "Belarusian"
+msgstr "bielorruso"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "bretón"
+
+msgid "Bosnian"
+msgstr "Bosnio"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Czech"
+msgstr "Checo"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Danés"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr "Bajo sorbio"
+
+msgid "Greek"
+msgstr "Griego"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr "Inglés australiano"
+
+msgid "British English"
+msgstr "Inglés británico"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Español"
+
+msgid "Argentinian Spanish"
+msgstr "Español de Argentina"
+
+msgid "Colombian Spanish"
+msgstr "Español Colombiano"
+
+msgid "Mexican Spanish"
+msgstr "Español de México"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español de nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "español de Venezuela"
+
+msgid "Estonian"
+msgstr "Estonio"
+
+msgid "Basque"
+msgstr "Vasco"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisón"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr "Gaélico escocés"
+
+msgid "Galician"
+msgstr "Gallego"
+
+msgid "Hebrew"
+msgstr "Hebreo"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr "Alto sorbio"
+
+msgid "Hungarian"
+msgstr "Húngaro"
+
+msgid "Armenian"
+msgstr "Armenio"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesio"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italiano"
+
+msgid "Japanese"
+msgstr "Japonés"
+
+msgid "Georgian"
+msgstr "Georgiano"
+
+msgid "Kabyle"
+msgstr "Cabilio"
+
+msgid "Kazakh"
+msgstr "Kazajstán"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Coreano"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "luxemburgués"
+
+msgid "Lithuanian"
+msgstr "Lituano"
+
+msgid "Latvian"
+msgstr "Letón"
+
+msgid "Macedonian"
+msgstr "Macedonio"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "burmés"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "Nepal"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Noruego Nynorsk"
+
+msgid "Ossetic"
+msgstr "osetio"
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Polaco"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués de Brasil"
+
+msgid "Romanian"
+msgstr "Rumano"
+
+msgid "Russian"
+msgstr "Ruso"
+
+msgid "Slovak"
+msgstr "Eslovaco"
+
+msgid "Slovenian"
+msgstr "Esloveno"
+
+msgid "Albanian"
+msgstr "Albanés"
+
+msgid "Serbian"
+msgstr "Serbio"
+
+msgid "Serbian Latin"
+msgstr "Latin Serbio"
+
+msgid "Swedish"
+msgstr "Sueco"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Tailandés"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turco"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "udmurto"
+
+msgid "Ukrainian"
+msgstr "Ucraniano"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chino simplificado"
+
+msgid "Traditional Chinese"
+msgstr "Chino tradicional"
+
+msgid "Messages"
+msgstr "Mensajes"
+
+msgid "Site Maps"
+msgstr "Mapas del sitio"
+
+msgid "Static Files"
+msgstr "Archivos Estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr "Ese número de página no es un número entero"
+
+msgid "That page number is less than 1"
+msgstr "Ese número de página es menor que 1"
+
+msgid "That page contains no results"
+msgstr "Esa página no contiene resultados"
+
+msgid "Enter a valid value."
+msgstr "Introduzca un valor válido."
+
+msgid "Enter a valid URL."
+msgstr "Ingrese una URL válida."
+
+msgid "Enter a valid integer."
+msgstr "Ingrese un entero válido."
+
+msgid "Enter a valid email address."
+msgstr "Introduzca una dirección de correo electrónico válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Introduzca un \"slug\" válido que conste de letras, números, guiones bajos o "
+"guiones."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Introduzca un \"slug\" válido que conste de letras Unicode, números, guiones "
+"bajos o guiones."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Introduzca una dirección IPv6 válida."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Introduzca una dirección IPv4 o IPv6 válida."
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca sólo números separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Asegúrese de que este valor es %(limit_value)s (es %(show_value)s )."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea menor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor sea mayor o igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrese de que no hay más de %(max)s dígito en total."
+msgstr[1] "Asegúrese de que no hay más de %(max)s dígitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr "Caracteres nulos no están permitidos."
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "El valor %(value)r no es una opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo no puede estar en blanco."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Ya existe un/a %(model_name)s con este/a %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Campo tipo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "El valor \"%(value)s\" debe ser Verdadero o Falso. "
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolean (Verdadero o Falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s” : el valor tiene un formato de fecha inválido. Debería estar en "
+"el formato YYYY-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s” : el valor tiene el formato correcto (YYYY-MM-DD) pero es una "
+"fecha inválida."
+
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"'%(value)s' tiene un formato de fecha no válido. Este valor debe estar en el "
+"formato AAAA-MM-DD HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
+
+msgid "File path"
+msgstr "Ruta de archivo"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "El valor \"%(value)s\" debe ser flotante."
+
+msgid "Floating point number"
+msgstr "Número de punto flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Entero"
+
+msgid "Big (8 byte) integer"
+msgstr "Entero grande (8 bytes)"
+
+msgid "Small integer"
+msgstr "Entero pequeño"
+
+msgid "IPv4 address"
+msgstr "Dirección IPv4"
+
+msgid "IP address"
+msgstr "Dirección IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+msgid "Positive big integer"
+msgstr ""
+
+msgid "Positive integer"
+msgstr "Entero positivo"
+
+msgid "Positive small integer"
+msgstr "Entero positivo pequeño"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (hasta %(max_length)s)"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Los datos en bruto"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Archivo"
+
+msgid "Image"
+msgstr "Imagen"
+
+msgid "A JSON object"
+msgstr "Un objeto JSON"
+
+msgid "Value must be valid JSON."
+msgstr "El valor debe ser JSON válido"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "La instancia de %(model)s con %(field)s %(value)r no existe."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave foránea (el tipo está determinado por el campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación uno-a-uno"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Relación %(from)s - %(to)s "
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Relaciones %(from)s - %(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relación muchos-a-muchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+msgid "Enter a whole number."
+msgstr "Introduzca un número entero."
+
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+msgid "Enter a valid time."
+msgstr "Introduzca una hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Introduzca una fecha/hora válida."
+
+msgid "Enter a valid duration."
+msgstr "Introduzca una duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "La cantidad de días debe tener valores entre {min_days} y {max_days}."
+
+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."
+
+msgid "No file was submitted."
+msgstr "No se envió ningún archivo."
+
+msgid "The submitted file is empty."
+msgstr "El archivo enviado está vacío."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Por favor envíe un archivo o marque la casilla, no ambos."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Seleccione una imagen válida. El archivo que ha seleccionado no es una "
+"imagen o es un un archivo de imagen corrupto."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Introduzca una lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Ingrese un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Ingrese un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr "Ingresa un JSON válido."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "Ordenar"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, corrija la información duplicada en %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor corrija la información duplicada en %(field)s, que debe ser única."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor corrija la información duplicada en %(field_name)s que debe ser "
+"única para el %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, corrija los valores duplicados detallados mas abajo."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Seleccione una opción válida. La opción seleccionada no es una de las "
+"disponibles."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Borrar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Modificar"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "sí,no,tal vez"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoche"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "Lunes"
+
+msgid "Tuesday"
+msgstr "Martes"
+
+msgid "Wednesday"
+msgstr "Miércoles"
+
+msgid "Thursday"
+msgstr "Jueves"
+
+msgid "Friday"
+msgstr "Viernes"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "Mon"
+msgstr "Lun"
+
+msgid "Tue"
+msgstr "Mar"
+
+msgid "Wed"
+msgstr "Mie"
+
+msgid "Thu"
+msgstr "Jue"
+
+msgid "Fri"
+msgstr "Vie"
+
+msgid "Sat"
+msgstr "Sab"
+
+msgid "Sun"
+msgstr "Dom"
+
+msgid "January"
+msgstr "Enero"
+
+msgid "February"
+msgstr "Febrero"
+
+msgid "March"
+msgstr "Marzo"
+
+msgid "April"
+msgstr "Abril"
+
+msgid "May"
+msgstr "Mayo"
+
+msgid "June"
+msgstr "Junio"
+
+msgid "July"
+msgstr "Julio"
+
+msgid "August"
+msgstr "Agosto"
+
+msgid "September"
+msgstr "Septiembre"
+
+msgid "October"
+msgstr "Octubre"
+
+msgid "November"
+msgstr "Noviembre"
+
+msgid "December"
+msgstr "Diciembre"
+
+msgid "jan"
+msgstr "ene"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dic"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ene."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sep."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dic."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Enero"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Febrero"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Septiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Noviembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Diciembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Esta no es una dirección IPv6 válida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ","
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hora"
+msgstr[1] "%(num)d horas"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Forbidden"
+msgstr "Prohibido"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr "No se ha especificado el valor año"
+
+msgid "Date out of range"
+msgstr "Fecha fuera de rango"
+
+msgid "No month specified"
+msgstr "No se ha especificado el valor mes"
+
+msgid "No day specified"
+msgstr "No se ha especificado el valor dia"
+
+msgid "No week specified"
+msgstr "No se ha especificado el valor semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No hay %(verbose_name_plural)s disponibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"No hay %(verbose_name_plural)s futuros disponibles porque %(class_name)s."
+"allow_future tiene el valor False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No se han encontrado %(verbose_name)s que coincidan con la consulta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "La página no es \"last\", ni puede ser convertido a un int."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Página inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Los índices del directorio no están permitidos."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índice de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "¡La instalación funcionó con éxito! ¡Felicidades!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr "Documentación de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr "Comunidad de Django"
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..8b8a037a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..40fb00cd
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/formats.py
new file mode 100644
index 00000000..d675d79b
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_MX/formats.py
@@ -0,0 +1,26 @@
+# This file is distributed under the same license as the Django package.
+#
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday: ISO 8601
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ "%Y%m%d", # '20061025'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = "." # ',' is also official (less common): NOM-008-SCFI-2002
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..eff4543a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..b978c605
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/formats.py
new file mode 100644
index 00000000..0c8112a6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_NI/formats.py
@@ -0,0 +1,26 @@
+# This file is distributed under the same license as the Django package.
+#
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday: ISO 8601
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+ "%Y%m%d", # '20061025'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..a272a1e3
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..69c7263a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/formats.py
new file mode 100644
index 00000000..d50fe5d6
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_PR/formats.py
@@ -0,0 +1,27 @@
+# This file is distributed under the same license as the Django package.
+#
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \a \l\a\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 0 # Sunday
+
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '31/12/2009'
+ "%d/%m/%y", # '31/12/09'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S",
+ "%d/%m/%Y %H:%M:%S.%f",
+ "%d/%m/%Y %H:%M",
+ "%d/%m/%y %H:%M:%S",
+ "%d/%m/%y %H:%M:%S.%f",
+ "%d/%m/%y %H:%M",
+]
+
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..f7efb3ef
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po
new file mode 100644
index 00000000..bd0a9048
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/es_VE/LC_MESSAGES/django.po
@@ -0,0 +1,1260 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Claude Paroz , 2020
+# Eduardo , 2017
+# Leonardo J. Caballero G. , 2016
+# Sebastián Magrí, 2011
+# Yoel Acevedo, 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2020-05-19 20:23+0200\n"
+"PO-Revision-Date: 2020-07-14 21:42+0000\n"
+"Last-Translator: Transifex Bot <>\n"
+"Language-Team: Spanish (Venezuela) (http://www.transifex.com/django/django/"
+"language/es_VE/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_VE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikáans"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Algerian Arabic"
+msgstr ""
+
+msgid "Asturian"
+msgstr "Asturiano"
+
+msgid "Azerbaijani"
+msgstr "Azerí"
+
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+msgid "Belarusian"
+msgstr "Bielorruso"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "Bretón"
+
+msgid "Bosnian"
+msgstr "Bosnio"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Czech"
+msgstr "Checo"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Danés"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr "Sorbio Inferior"
+
+msgid "Greek"
+msgstr "Griego"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr "Inglés Australiano"
+
+msgid "British English"
+msgstr "Inglés Británico"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Español"
+
+msgid "Argentinian Spanish"
+msgstr "Español de Argentina"
+
+msgid "Colombian Spanish"
+msgstr "Español de Colombia"
+
+msgid "Mexican Spanish"
+msgstr "Español de México"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español de Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Español de Venezuela"
+
+msgid "Estonian"
+msgstr "Estonio"
+
+msgid "Basque"
+msgstr "Vazco"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finlandés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisio"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr "Gaélico Escocés"
+
+msgid "Galician"
+msgstr "Galés"
+
+msgid "Hebrew"
+msgstr "Hebreo"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr "Sorbio Superior"
+
+msgid "Hungarian"
+msgstr "Húngaro"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesio"
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italiano"
+
+msgid "Japanese"
+msgstr "Japonés"
+
+msgid "Georgian"
+msgstr "Georgiano"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "Kazajo"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Canarés"
+
+msgid "Korean"
+msgstr "Coreano"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "Luxenburgués"
+
+msgid "Lithuanian"
+msgstr "Lituano"
+
+msgid "Latvian"
+msgstr "Latvio"
+
+msgid "Macedonian"
+msgstr "Macedonio"
+
+msgid "Malayalam"
+msgstr "Malayala"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr "Maratí"
+
+msgid "Burmese"
+msgstr "Birmano"
+
+msgid "Norwegian Bokmål"
+msgstr "Noruego"
+
+msgid "Nepali"
+msgstr "Nepalí"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nynorsk"
+
+msgid "Ossetic"
+msgstr "Osetio"
+
+msgid "Punjabi"
+msgstr "Punjabi"
+
+msgid "Polish"
+msgstr "Polaco"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués de Brasil"
+
+msgid "Romanian"
+msgstr "Ruman"
+
+msgid "Russian"
+msgstr "Ruso"
+
+msgid "Slovak"
+msgstr "Eslovaco"
+
+msgid "Slovenian"
+msgstr "Eslovenio"
+
+msgid "Albanian"
+msgstr "Albano"
+
+msgid "Serbian"
+msgstr "Serbi"
+
+msgid "Serbian Latin"
+msgstr "Latín Serbio"
+
+msgid "Swedish"
+msgstr "Sueco"
+
+msgid "Swahili"
+msgstr "Suajili"
+
+msgid "Tamil"
+msgstr "Tamil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Tailandés"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turco"
+
+msgid "Tatar"
+msgstr "Tártaro"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Ukrainian"
+msgstr "Ucranio"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chino simplificado"
+
+msgid "Traditional Chinese"
+msgstr "Chino tradicional"
+
+msgid "Messages"
+msgstr "Mensajes"
+
+msgid "Site Maps"
+msgstr "Mapas del sitio"
+
+msgid "Static Files"
+msgstr "Archivos estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+msgid "That page number is not an integer"
+msgstr "Ese número de página no es un número entero"
+
+msgid "That page number is less than 1"
+msgstr "Ese número de página es menor que 1"
+
+msgid "That page contains no results"
+msgstr "Esa página no contiene resultados"
+
+msgid "Enter a valid value."
+msgstr "Introduzca un valor válido."
+
+msgid "Enter a valid URL."
+msgstr "Introduzca una URL válida."
+
+msgid "Enter a valid integer."
+msgstr "Ingrese un valor válido."
+
+msgid "Enter a valid email address."
+msgstr "Ingrese una dirección de correo electrónico válida."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Introduzca una dirección IPv4 válida."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Ingrese una dirección IPv6 válida."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Ingrese una dirección IPv4 o IPv6 válida."
+
+msgid "Enter only digits separated by commas."
+msgstr "Introduzca solo dígitos separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Asegúrese de que este valor %(limit_value)s (ahora es %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor es menor o igual que %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegúrese de que este valor es mayor o igual que %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como mínimo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d carácter "
+"(tiene %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor tenga como máximo %(limit_value)d caracteres "
+"(tiene %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Introduzca un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegúrese de que no hayan más de %(max)s dígito en total."
+msgstr[1] "Asegúrese de que no hayan más de %(max)s dígitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrese de que no hayan más de %(max)s decimal."
+msgstr[1] "Asegúrese de que no hayan más de %(max)s decimales."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrese de que no hayan más de %(max)s dígito antes del punto decimal."
+msgstr[1] ""
+"Asegúrese de que no hayan más de %(max)s dígitos antes del punto decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "y"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s con este %(field_labels)s ya existe."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Valor %(value)r no es una opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo no puede ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo no puede estar en blanco."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s con esta %(field_label)s ya existe."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s debe ser único para %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Tipo de campo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleano (Verdadero o Falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadena (máximo %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Enteros separados por comas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "Fecha (sin hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Fecha (con hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Dirección de correo electrónico"
+
+msgid "File path"
+msgstr "Ruta de archivo"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "Número de punto flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "Entero"
+
+msgid "Big (8 byte) integer"
+msgstr "Entero grande (8 bytes)"
+
+msgid "IPv4 address"
+msgstr "Dirección IPv4"
+
+msgid "IP address"
+msgstr "Dirección IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (Verdadero, Falso o Nulo)"
+
+msgid "Positive big integer"
+msgstr ""
+
+msgid "Positive integer"
+msgstr "Entero positivo"
+
+msgid "Positive small integer"
+msgstr "Entero positivo pequeño"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (hasta %(max_length)s)"
+
+msgid "Small integer"
+msgstr "Entero pequeño"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos de binarios brutos"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "Archivo"
+
+msgid "Image"
+msgstr "Imagen"
+
+msgid "A JSON object"
+msgstr ""
+
+msgid "Value must be valid JSON."
+msgstr ""
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "la instancia del %(model)s con %(field)s %(value)r no existe."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave foránea (tipo determinado por el campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación uno a uno"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Relación %(from)s - %(to)s "
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Relaciones %(from)s - %(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relación muchos a muchos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Este campo es obligatorio."
+
+msgid "Enter a whole number."
+msgstr "Introduzca un número completo."
+
+msgid "Enter a valid date."
+msgstr "Introduzca una fecha válida."
+
+msgid "Enter a valid time."
+msgstr "Introduzca una hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Introduzca una hora y fecha válida."
+
+msgid "Enter a valid duration."
+msgstr "Ingrese una duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"No se envió archivo alguno. Revise el tipo de codificación del formulario."
+
+msgid "No file was submitted."
+msgstr "No se envió ningún archivo."
+
+msgid "The submitted file is empty."
+msgstr "El archivo enviado está vacío."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d carácter "
+"(tiene %(length)d)."
+msgstr[1] ""
+"Asegúrese de que este nombre de archivo tenga como máximo %(max)d caracteres "
+"(tiene %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Por favor provea un archivo o active el selector de limpiar, no ambos."
+
+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."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Ingrese una lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Ingrese un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Ingrese un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) %(error)s"
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr "Los datos de ManagementForm faltan o han sido manipulados"
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] "Por favor, envíe %d o un menor número de formularios."
+msgstr[1] "Por favor, envíe %d o un menor número de formularios."
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] "Por favor, envíe %d o más formularios."
+msgstr[1] "Por favor, envíe %d o más formularios."
+
+msgid "Order"
+msgstr "Orden"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Por favor, corrija el dato duplicado para %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Por favor, corrija el dato duplicado para %(field)s, este debe ser único."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Por favor, corrija los datos duplicados para %(field_name)s este debe ser "
+"único para %(lookup)s en %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Por favor, corrija los valores duplicados abajo."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+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 opciones disponibles."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Limpiar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Cambiar"
+
+msgid "Unknown"
+msgstr "Desconocido"
+
+msgid "Yes"
+msgstr "Sí"
+
+msgid "No"
+msgstr "No"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "sí,no,quizás"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoche"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "Lunes"
+
+msgid "Tuesday"
+msgstr "Martes"
+
+msgid "Wednesday"
+msgstr "Miércoles"
+
+msgid "Thursday"
+msgstr "Jueves"
+
+msgid "Friday"
+msgstr "Viernes"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "Mon"
+msgstr "Lun"
+
+msgid "Tue"
+msgstr "Mar"
+
+msgid "Wed"
+msgstr "Mié"
+
+msgid "Thu"
+msgstr "Jue"
+
+msgid "Fri"
+msgstr "Vie"
+
+msgid "Sat"
+msgstr "Sáb"
+
+msgid "Sun"
+msgstr "Dom"
+
+msgid "January"
+msgstr "Enero"
+
+msgid "February"
+msgstr "Febrero"
+
+msgid "March"
+msgstr "Marzo"
+
+msgid "April"
+msgstr "Abril"
+
+msgid "May"
+msgstr "Mayo"
+
+msgid "June"
+msgstr "Junio"
+
+msgid "July"
+msgstr "Julio"
+
+msgid "August"
+msgstr "Agosto"
+
+msgid "September"
+msgstr "Septiembre"
+
+msgid "October"
+msgstr "Octubre"
+
+msgid "November"
+msgstr "Noviembre"
+
+msgid "December"
+msgstr "Diciembre"
+
+msgid "jan"
+msgstr "ene"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "may"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dic"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ene."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sep."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dic."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Enero"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Febrero"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mayo"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Junio"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Julio"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Septiembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Octubre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Noviembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Diciembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Esta no es una dirección IPv6 válida."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "o"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] "%d año"
+msgstr[1] "%d años"
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] "%d mes"
+msgstr[1] "%d meses"
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] "%d semana"
+msgstr[1] "%d semanas"
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] "%d día"
+msgstr[1] "%d días"
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] "%d hora"
+msgstr[1] "%d horas"
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] "%d minuto"
+msgstr[1] "%d minutos"
+
+msgid "Forbidden"
+msgstr "Prohibido"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Verificación CSRF fallida. Solicitud abortada."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Estás viendo este mensaje porqué esta web requiere una cookie CSRF cuando se "
+"envían formularios. Esta cookie se necesita por razones de seguridad, para "
+"asegurar que tu navegador no ha sido comprometido por terceras partes."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr "Se puede ver más información si se establece DEBUG=True."
+
+msgid "No year specified"
+msgstr "No se ha indicado el año"
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr "No se ha indicado el mes"
+
+msgid "No day specified"
+msgstr "No se ha indicado el día"
+
+msgid "No week specified"
+msgstr "No se ha indicado la semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "No %(verbose_name_plural)s disponibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Los futuros %(verbose_name_plural)s no están disponibles porque "
+"%(class_name)s.allow_future es Falso."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "No se encontró ningún %(verbose_name)s coincidente con la consulta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Página inválida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Los índices de directorio no están permitidos."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índice de %(directory)s"
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..d109d42a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.po
new file mode 100644
index 00000000..5f3e1545
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/LC_MESSAGES/django.po
@@ -0,0 +1,1341 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# eallik , 2011
+# Erlend Eelmets , 2020
+# Jannis Leidel , 2011
+# Janno Liivak , 2013-2015
+# madisvain , 2011
+# Martin , 2014-2015,2021-2025
+# Martin , 2016-2017,2019-2020
+# Marti Raudsepp , 2014,2016
+# Ragnar Rebase , 2019
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Martin , 2014-2015,2021-2025\n"
+"Language-Team: Estonian (http://app.transifex.com/django/django/language/"
+"et/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: et\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "afrikaani"
+
+msgid "Arabic"
+msgstr "araabia"
+
+msgid "Algerian Arabic"
+msgstr "Alžeeria Araabia"
+
+msgid "Asturian"
+msgstr "astuuria"
+
+msgid "Azerbaijani"
+msgstr "aserbaidžaani"
+
+msgid "Bulgarian"
+msgstr "bulgaaria"
+
+msgid "Belarusian"
+msgstr "valgevene"
+
+msgid "Bengali"
+msgstr "bengali"
+
+msgid "Breton"
+msgstr "bretooni"
+
+msgid "Bosnian"
+msgstr "bosnia"
+
+msgid "Catalan"
+msgstr "katalaani"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Keskkurdi keel (sorani)"
+
+msgid "Czech"
+msgstr "tšehhi"
+
+msgid "Welsh"
+msgstr "uelsi"
+
+msgid "Danish"
+msgstr "taani"
+
+msgid "German"
+msgstr "saksa"
+
+msgid "Lower Sorbian"
+msgstr "alamsorbi"
+
+msgid "Greek"
+msgstr "kreeka"
+
+msgid "English"
+msgstr "inglise"
+
+msgid "Australian English"
+msgstr "austraalia inglise"
+
+msgid "British English"
+msgstr "briti inglise"
+
+msgid "Esperanto"
+msgstr "esperanto"
+
+msgid "Spanish"
+msgstr "hispaania"
+
+msgid "Argentinian Spanish"
+msgstr "argentiina hispaani"
+
+msgid "Colombian Spanish"
+msgstr "kolumbia hispaania"
+
+msgid "Mexican Spanish"
+msgstr "mehhiko hispaania"
+
+msgid "Nicaraguan Spanish"
+msgstr "nikaraagua hispaania"
+
+msgid "Venezuelan Spanish"
+msgstr "venetsueela hispaania"
+
+msgid "Estonian"
+msgstr "eesti"
+
+msgid "Basque"
+msgstr "baski"
+
+msgid "Persian"
+msgstr "pärsia"
+
+msgid "Finnish"
+msgstr "soome"
+
+msgid "French"
+msgstr "prantsuse"
+
+msgid "Frisian"
+msgstr "friisi"
+
+msgid "Irish"
+msgstr "iiri"
+
+msgid "Scottish Gaelic"
+msgstr "šoti gaeli"
+
+msgid "Galician"
+msgstr "galiitsia"
+
+msgid "Hebrew"
+msgstr "heebrea"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "horvaatia"
+
+msgid "Upper Sorbian"
+msgstr "ülemsorbi"
+
+msgid "Hungarian"
+msgstr "ungari"
+
+msgid "Armenian"
+msgstr "armeenia"
+
+msgid "Interlingua"
+msgstr "interlingua"
+
+msgid "Indonesian"
+msgstr "indoneesi"
+
+msgid "Igbo"
+msgstr "ibo"
+
+msgid "Ido"
+msgstr "ido"
+
+msgid "Icelandic"
+msgstr "islandi"
+
+msgid "Italian"
+msgstr "itaalia"
+
+msgid "Japanese"
+msgstr "jaapani"
+
+msgid "Georgian"
+msgstr "gruusia"
+
+msgid "Kabyle"
+msgstr "Kabiili"
+
+msgid "Kazakh"
+msgstr "kasahhi"
+
+msgid "Khmer"
+msgstr "khmeri"
+
+msgid "Kannada"
+msgstr "kannada"
+
+msgid "Korean"
+msgstr "korea"
+
+msgid "Kyrgyz"
+msgstr "kirgiisi"
+
+msgid "Luxembourgish"
+msgstr "letseburgi"
+
+msgid "Lithuanian"
+msgstr "leedu"
+
+msgid "Latvian"
+msgstr "läti"
+
+msgid "Macedonian"
+msgstr "makedoonia"
+
+msgid "Malayalam"
+msgstr "malaia"
+
+msgid "Mongolian"
+msgstr "mongoolia"
+
+msgid "Marathi"
+msgstr "marathi"
+
+msgid "Malay"
+msgstr "malai"
+
+msgid "Burmese"
+msgstr "birma"
+
+msgid "Norwegian Bokmål"
+msgstr "norra bokmål"
+
+msgid "Nepali"
+msgstr "nepali"
+
+msgid "Dutch"
+msgstr "hollandi"
+
+msgid "Norwegian Nynorsk"
+msgstr "norra (nynorsk)"
+
+msgid "Ossetic"
+msgstr "osseetia"
+
+msgid "Punjabi"
+msgstr "pandžab"
+
+msgid "Polish"
+msgstr "poola"
+
+msgid "Portuguese"
+msgstr "portugali"
+
+msgid "Brazilian Portuguese"
+msgstr "brasiilia portugali"
+
+msgid "Romanian"
+msgstr "rumeenia"
+
+msgid "Russian"
+msgstr "vene"
+
+msgid "Slovak"
+msgstr "slovaki"
+
+msgid "Slovenian"
+msgstr "sloveeni"
+
+msgid "Albanian"
+msgstr "albaania"
+
+msgid "Serbian"
+msgstr "serbia"
+
+msgid "Serbian Latin"
+msgstr "serbia (ladina)"
+
+msgid "Swedish"
+msgstr "rootsi"
+
+msgid "Swahili"
+msgstr "suahiili"
+
+msgid "Tamil"
+msgstr "tamiili"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Tajik"
+msgstr "tadžiki"
+
+msgid "Thai"
+msgstr "tai"
+
+msgid "Turkmen"
+msgstr "türkmeeni"
+
+msgid "Turkish"
+msgstr "türgi"
+
+msgid "Tatar"
+msgstr "tatari"
+
+msgid "Udmurt"
+msgstr "udmurdi"
+
+msgid "Uyghur"
+msgstr "Uiguuri"
+
+msgid "Ukrainian"
+msgstr "ukrania"
+
+msgid "Urdu"
+msgstr "urdu"
+
+msgid "Uzbek"
+msgstr "Usbeki"
+
+msgid "Vietnamese"
+msgstr "vietnami"
+
+msgid "Simplified Chinese"
+msgstr "lihtsustatud hiina"
+
+msgid "Traditional Chinese"
+msgstr "traditsiooniline hiina"
+
+msgid "Messages"
+msgstr "Sõnumid"
+
+msgid "Site Maps"
+msgstr "Saidikaardid"
+
+msgid "Static Files"
+msgstr "Staatilised failid"
+
+msgid "Syndication"
+msgstr "Sündikeerimine"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "See lehe number ei ole täisarv"
+
+msgid "That page number is less than 1"
+msgstr "See lehe number on väiksem kui 1"
+
+msgid "That page contains no results"
+msgstr "See leht ei sisalda tulemusi"
+
+msgid "Enter a valid value."
+msgstr "Sisestage korrektne väärtus."
+
+msgid "Enter a valid domain name."
+msgstr "Sisestage korrektne domeeninimi."
+
+msgid "Enter a valid URL."
+msgstr "Sisestage korrektne URL."
+
+msgid "Enter a valid integer."
+msgstr "Sisestage korrektne täisarv."
+
+msgid "Enter a valid email address."
+msgstr "Sisestage korrektne e-posti aadress."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Sisestage korrektne “nälk”, mis koosneb tähtedest, numbritest, "
+"alakriipsudest või sidekriipsudest."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Sisestage korrektne “nälk”, mis koosneb Unicode tähtedest, numbritest, ala- "
+"või sidekriipsudest."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Sisestage korrektne %(protocol)s aadress."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 või IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Sisestage ainult komaga eraldatud numbreid."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Veendu, et see väärtus on %(limit_value)s (hetkel on %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Veendu, et see väärtus on väiksem või võrdne kui %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Veendu, et see väärtus on suurem või võrdne kui %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Veendu, et see väärtus on arvu %(limit_value)s kordne."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Väärtuses peab olema vähemalt %(limit_value)d tähemärk (praegu on "
+"%(show_value)d)."
+msgstr[1] ""
+"Väärtuses peab olema vähemalt %(limit_value)d tähemärki (praegu on "
+"%(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Väärtuses võib olla kõige rohkem %(limit_value)d tähemärk (praegu on "
+"%(show_value)d)."
+msgstr[1] ""
+"Väärtuses võib olla kõige rohkem %(limit_value)d tähemärki (praegu on "
+"%(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Sisestage arv."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Veenduge, et kogu numbrikohtade arv ei oleks suurem kui %(max)s."
+msgstr[1] "Veenduge, et kogu numbrikohtade arv ei oleks suurem kui %(max)s."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Veenduge, et komakohtade arv ei oleks suurem kui %(max)s."
+msgstr[1] "Veenduge, et komakohtade arv ei oleks suurem kui %(max)s."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %(max)s."
+msgstr[1] ""
+"Veenduge, et komast vasakul olevaid numbreid ei oleks rohkem kui %(max)s."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Faililaiend “%(extension)s” pole lubatud. Lubatud laiendid on: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Tühjad tähemärgid ei ole lubatud."
+
+msgid "and"
+msgstr "ja"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s väljaga %(field_labels)s on juba olemas."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Kitsendust “%(name)s” on rikutud."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Väärtus %(value)r ei ole kehtiv valik."
+
+msgid "This field cannot be null."
+msgstr "See lahter ei tohi olla tühi."
+
+msgid "This field cannot be blank."
+msgstr "See väli ei saa olla tühi."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Sellise %(field_label)s-väljaga %(model_name)s on juba olemas."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s peab olema unikaalne %(date_field_label)s %(lookup_type)s "
+"suhtes."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Lahter tüüpi: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "“%(value)s” väärtus peab olema Tõene või Väär."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "“%(value)s” väärtus peab olema Tõene, Väär või Tühi."
+
+msgid "Boolean (Either True or False)"
+msgstr "Tõeväärtus (Kas tõene või väär)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String (kuni %(max_length)s märki)"
+
+msgid "String (unlimited)"
+msgstr "String (piiramatu)"
+
+msgid "Comma-separated integers"
+msgstr "Komaga eraldatud täisarvud"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"“%(value)s” väärtusel on vale kuupäevaformaat. See peab olema kujul AAAA-KK-"
+"PP."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"“%(value)s” väärtusel on õige formaat (AAAA-KK-PP), kuid kuupäev on vale."
+
+msgid "Date (without time)"
+msgstr "Kuupäev (kellaajata)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"“%(value)s” väärtusel on vale formaat. Peab olema formaadis AAAA-KK-PP HH:"
+"MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"“%(value)s” väärtusel on õige formaat (AAAA-KK-PP HH:MM[:ss[.uuuuuu]][TZ]), "
+"kuid kuupäev/kellaaeg on vale."
+
+msgid "Date (with time)"
+msgstr "Kuupäev (kellaajaga)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s” väärtus peab olema kümnendarv."
+
+msgid "Decimal number"
+msgstr "Kümnendmurd"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"“%(value)s” väärtusel on vale formaat. Peab olema formaadis [DD] "
+"[[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Kestus"
+
+msgid "Email address"
+msgstr "E-posti aadress"
+
+msgid "File path"
+msgstr "Faili asukoht"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s” väärtus peab olema ujukomaarv."
+
+msgid "Floating point number"
+msgstr "Ujukomaarv"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "“%(value)s” väärtus peab olema täisarv."
+
+msgid "Integer"
+msgstr "Täisarv"
+
+msgid "Big (8 byte) integer"
+msgstr "Suur (8 baiti) täisarv"
+
+msgid "Small integer"
+msgstr "Väike täisarv"
+
+msgid "IPv4 address"
+msgstr "IPv4 aadress"
+
+msgid "IP address"
+msgstr "IP aadress"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "“%(value)s” väärtus peab olema kas Tühi, Tõene või Väär."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Tõeväärtus (Kas tõene, väär või tühi)"
+
+msgid "Positive big integer"
+msgstr "Positiivne suur täisarv"
+
+msgid "Positive integer"
+msgstr "Positiivne täisarv"
+
+msgid "Positive small integer"
+msgstr "Positiivne väikene täisarv"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Nälk (kuni %(max_length)s märki)"
+
+msgid "Text"
+msgstr "Tekst"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"“%(value)s” väärtusel on vale formaat. Peab olema formaadis HH:MM[:ss[."
+"uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"“%(value)s” väärtusel on õige formaat (HH:MM[:ss[.uuuuuu]]), kuid kellaaeg "
+"on vale."
+
+msgid "Time"
+msgstr "Aeg"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Töötlemata binaarandmed"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” ei ole korrektne UUID."
+
+msgid "Universally unique identifier"
+msgstr "Universaalne unikaalne identifikaator"
+
+msgid "File"
+msgstr "Fail"
+
+msgid "Image"
+msgstr "Pilt"
+
+msgid "A JSON object"
+msgstr "JSON objekt"
+
+msgid "Value must be valid JSON."
+msgstr "Väärtus peab olema korrektne JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "%(model)s isendit %(field)s %(value)r ei ole kehtiv valik."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Välisvõti (tüübi määrab seotud väli) "
+
+msgid "One-to-one relationship"
+msgstr "Üks-ühele seos"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s seos"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s seosed"
+
+msgid "Many-to-many relationship"
+msgstr "Mitu-mitmele seos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "See lahter on nõutav."
+
+msgid "Enter a whole number."
+msgstr "Sisestage täisarv."
+
+msgid "Enter a valid date."
+msgstr "Sisestage korrektne kuupäev."
+
+msgid "Enter a valid time."
+msgstr "Sisestage korrektne kellaaeg."
+
+msgid "Enter a valid date/time."
+msgstr "Sisestage korrektne kuupäev ja kellaaeg."
+
+msgid "Enter a valid duration."
+msgstr "Sisestage korrektne kestus."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Päevade arv peab jääma vahemikku {min_days} kuni {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ühtegi faili ei saadetud. Kontrollige vormi kodeeringutüüpi."
+
+msgid "No file was submitted."
+msgstr "Ühtegi faili ei saadetud."
+
+msgid "The submitted file is empty."
+msgstr "Saadetud fail on tühi."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Veenduge, et faili nimes poleks rohkem kui %(max)d märk (praegu on "
+"%(length)d)."
+msgstr[1] ""
+"Veenduge, et faili nimes poleks rohkem kui %(max)d märki (praegu on "
+"%(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Palun laadige fail või märgistage 'tühjenda' kast, mitte mõlemat."
+
+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."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Sisestage väärtuste nimekiri."
+
+msgid "Enter a complete value."
+msgstr "Sisestage täielik väärtus."
+
+msgid "Enter a valid UUID."
+msgstr "Sisestage korrektne UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Sisestage korrektne JSON."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Peidetud väli %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Palun kinnitage kõige rohkem %(num)d vormi."
+msgstr[1] "Palun kinnitage kõige rohkem %(num)d vormi."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Palun kinnitage vähemalt %(num)d vormi."
+msgstr[1] "Palun kinnitage vähemalt %(num)d vormi."
+
+msgid "Order"
+msgstr "Järjestus"
+
+msgid "Delete"
+msgstr "Kustuta"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Palun parandage duplikaat-andmed lahtris %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Palun parandage duplikaat-andmed lahtris %(field)s, mis peab olema unikaalne."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Palun parandage allolevad duplikaat-väärtused"
+
+msgid "The inline value did not match the parent instance."
+msgstr "Pesastatud väärtus ei sobi ülemobjektiga."
+
+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."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” ei ole korrektne väärtus."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s ei saanud tõlgendada ajavööndis %(current_timezone)s; see on "
+"kas mitmetähenduslik või seda ei eksisteeri."
+
+msgid "Clear"
+msgstr "Tühjenda"
+
+msgid "Currently"
+msgstr "Hetkel"
+
+msgid "Change"
+msgstr "Muuda"
+
+msgid "Unknown"
+msgstr "Tundmatu"
+
+msgid "Yes"
+msgstr "Jah"
+
+msgid "No"
+msgstr "Ei"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "jah,ei,võib-olla"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bait"
+msgstr[1] "%(size)d baiti"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s kB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.l."
+
+msgid "a.m."
+msgstr "e.l."
+
+msgid "PM"
+msgstr "PL"
+
+msgid "AM"
+msgstr "EL"
+
+msgid "midnight"
+msgstr "südaöö"
+
+msgid "noon"
+msgstr "keskpäev"
+
+msgid "Monday"
+msgstr "esmaspäev"
+
+msgid "Tuesday"
+msgstr "teisipäev"
+
+msgid "Wednesday"
+msgstr "kolmapäev"
+
+msgid "Thursday"
+msgstr "neljapäev"
+
+msgid "Friday"
+msgstr "reede"
+
+msgid "Saturday"
+msgstr "laupäev"
+
+msgid "Sunday"
+msgstr "pühapäev"
+
+msgid "Mon"
+msgstr "esmasp."
+
+msgid "Tue"
+msgstr "teisip."
+
+msgid "Wed"
+msgstr "kolmap."
+
+msgid "Thu"
+msgstr "neljap."
+
+msgid "Fri"
+msgstr "reede"
+
+msgid "Sat"
+msgstr "laup."
+
+msgid "Sun"
+msgstr "pühap."
+
+msgid "January"
+msgstr "jaanuar"
+
+msgid "February"
+msgstr "veebruar"
+
+msgid "March"
+msgstr "märts"
+
+msgid "April"
+msgstr "aprill"
+
+msgid "May"
+msgstr "mai"
+
+msgid "June"
+msgstr "juuni"
+
+msgid "July"
+msgstr "juuli"
+
+msgid "August"
+msgstr "august"
+
+msgid "September"
+msgstr "september"
+
+msgid "October"
+msgstr "oktoober"
+
+msgid "November"
+msgstr "november"
+
+msgid "December"
+msgstr "detsember"
+
+msgid "jan"
+msgstr "jaan"
+
+msgid "feb"
+msgstr "veeb"
+
+msgid "mar"
+msgstr "märts"
+
+msgid "apr"
+msgstr "apr"
+
+msgid "may"
+msgstr "mai"
+
+msgid "jun"
+msgstr "jun"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aug"
+
+msgid "sep"
+msgstr "sept"
+
+msgid "oct"
+msgstr "okt"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dets"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "jaan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "veeb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "mär."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "apr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "mai"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "juuni"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "juuli"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "aug."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "okt."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "dets."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "jaanuar"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "veebruar"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "märts"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "aprill"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "mai"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "juuni"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "juuli"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "august"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "september"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "oktoober"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "november"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "detsember"
+
+msgid "This is not a valid IPv6 address."
+msgstr "See ei ole korrektne IPv6 aadress."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "või"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d aasta"
+msgstr[1] "%(num)d aastat"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d kuu"
+msgstr[1] "%(num)d kuud"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d nädal"
+msgstr[1] "%(num)d nädalat"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d päev"
+msgstr[1] "%(num)d päeva"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d tund"
+msgstr[1] "%(num)d tundi"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minut"
+msgstr[1] "%(num)d minutit"
+
+msgid "Forbidden"
+msgstr "Keelatud"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF verifitseerimine ebaõnnestus. Päring katkestati."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Näete seda sõnumit, kuna käesolev HTTPS leht nõuab “Viitaja päise” saatmist "
+"teie brauserile, kuid seda ei saadetud. Seda päist on vaja "
+"turvakaalutlustel, kindlustamaks et teie brauserit ei ole kolmandate "
+"osapoolte poolt üle võetud."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Kui olete oma brauseri seadistustes välja lülitanud “Viitaja” päised siis "
+"lülitage need taas sisse vähemalt antud lehe jaoks või HTTPS üheduste jaoks "
+"või “sama-allika” päringute jaoks."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Kui kasutate silti või "
+"saadate päist “Referrer-Policy: no-referrer”, siis palun eemaldage need. "
+"CSRF kaitse vajab range viitaja kontrolliks päist “Referer”. Kui privaatsus "
+"on probleemiks, kasutage alternatiive nagu "
+"linkidele, mis viivad kolmandate poolte lehtedele."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Näete seda teadet, kuna see leht vajab CSRF küpsist vormide postitamiseks. "
+"Seda küpsist on vaja turvakaalutlustel, kindlustamaks et teie brauserit ei "
+"ole kolmandate osapoolte poolt üle võetud."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Kui olete oma brauseris küpsised keelanud, siis palun lubage need vähemalt "
+"selle lehe jaoks või “sama-allika” päringute jaoks."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Saadaval on rohkem infot kasutades DEBUG=True"
+
+msgid "No year specified"
+msgstr "Aasta on valimata"
+
+msgid "Date out of range"
+msgstr "Kuupäev vahemikust väljas"
+
+msgid "No month specified"
+msgstr "Kuu on valimata"
+
+msgid "No day specified"
+msgstr "Päev on valimata"
+
+msgid "No week specified"
+msgstr "Nädal on valimata"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Ei leitud %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Tulevane %(verbose_name_plural)s pole saadaval, sest %(class_name)s."
+"allow_future on False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Vigane kuupäeva sõne “%(datestr)s” lähtudes formaadist “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Päringule vastavat %(verbose_name)s ei leitud"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Lehekülg pole “viimane” ja ei saa teda konvertida täisarvuks."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Vigane leht (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Tühi list ja “%(class_name)s.allow_empty” on Väär."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Kausta sisuloendid ei ole siin lubatud."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” ei eksisteeri"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "%(directory)s sisuloend"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Paigaldamine õnnestus! Palju õnne!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Vaata release notes Djangole %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Näete seda lehte, kuna teil on määratud DEBUG=True Django seadete failis ja te ei ole ühtki "
+"URLi seadistanud."
+
+msgid "Django Documentation"
+msgstr "Django dokumentatsioon"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Teemad, viited, & õpetused"
+
+msgid "Tutorial: A Polling App"
+msgstr "Õpetus: Küsitlusrakendus"
+
+msgid "Get started with Django"
+msgstr "Alusta Djangoga"
+
+msgid "Django Community"
+msgstr "Django Kogukond"
+
+msgid "Connect, get help, or contribute"
+msgstr "Suhelge, küsige abi või panustage"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..c0993cd3
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..2ec4c250
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/formats.py
new file mode 100644
index 00000000..3b2d9ba4
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/et/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. F Y"
+TIME_FORMAT = "G:i"
+# DATETIME_FORMAT =
+# YEAR_MONTH_FORMAT =
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "d.m.Y"
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = " " # Non-breaking space
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..031ad434
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po
new file mode 100644
index 00000000..f3e91a86
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/LC_MESSAGES/django.po
@@ -0,0 +1,1313 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Aitzol Naberan , 2013,2016
+# Ander Martinez , 2013-2014
+# Eneko Illarramendi , 2017-2019,2021-2022,2024
+# Jannis Leidel , 2011
+# jazpillaga , 2011
+# julen, 2011-2012
+# julen, 2013,2015
+# Mikel Maldonado , 2021
+# totorika93 , 2012
+# 67feb0cba3962a6c9f09eb0e43697461_528661a , 2013
+# Urtzi Odriozola , 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-05-22 11:46-0300\n"
+"PO-Revision-Date: 2024-08-07 06:49+0000\n"
+"Last-Translator: Eneko Illarramendi , "
+"2017-2019,2021-2022,2024\n"
+"Language-Team: Basque (http://app.transifex.com/django/django/language/eu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: eu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Arabiera"
+
+msgid "Algerian Arabic"
+msgstr "Algeriar Arabiera"
+
+msgid "Asturian"
+msgstr "Asturiera"
+
+msgid "Azerbaijani"
+msgstr "Azerbaijanera"
+
+msgid "Bulgarian"
+msgstr "Bulgariera"
+
+msgid "Belarusian"
+msgstr "Bielorrusiera"
+
+msgid "Bengali"
+msgstr "Bengalera"
+
+msgid "Breton"
+msgstr "Bretoia"
+
+msgid "Bosnian"
+msgstr "Bosniera"
+
+msgid "Catalan"
+msgstr "Katalana"
+
+msgid "Central Kurdish (Sorani)"
+msgstr ""
+
+msgid "Czech"
+msgstr "Txekiera"
+
+msgid "Welsh"
+msgstr "Galesa"
+
+msgid "Danish"
+msgstr "Daniera"
+
+msgid "German"
+msgstr "Alemana"
+
+msgid "Lower Sorbian"
+msgstr "Behe-sorbiera"
+
+msgid "Greek"
+msgstr "Greziera"
+
+msgid "English"
+msgstr "Ingelesa"
+
+msgid "Australian English"
+msgstr "Australiar ingelesa"
+
+msgid "British English"
+msgstr "Ingelesa"
+
+msgid "Esperanto"
+msgstr "Esperantoa"
+
+msgid "Spanish"
+msgstr "Gaztelania"
+
+msgid "Argentinian Spanish"
+msgstr "Gaztelania (Argentina)"
+
+msgid "Colombian Spanish"
+msgstr "Gaztelania (Kolonbia)"
+
+msgid "Mexican Spanish"
+msgstr "Gaztelania (Mexiko)"
+
+msgid "Nicaraguan Spanish"
+msgstr "Gaztelania (Nikaragua)"
+
+msgid "Venezuelan Spanish"
+msgstr "Gaztelania (Venezuela)"
+
+msgid "Estonian"
+msgstr "Estoniera"
+
+msgid "Basque"
+msgstr "Euskara"
+
+msgid "Persian"
+msgstr "Persiera"
+
+msgid "Finnish"
+msgstr "Finlandiera"
+
+msgid "French"
+msgstr "Frantsesa"
+
+msgid "Frisian"
+msgstr "Frisiera"
+
+msgid "Irish"
+msgstr "Irlandako gaelikoa"
+
+msgid "Scottish Gaelic"
+msgstr "Eskoziako gaelikoa"
+
+msgid "Galician"
+msgstr "Galiziera"
+
+msgid "Hebrew"
+msgstr "Hebreera"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Kroaziera"
+
+msgid "Upper Sorbian"
+msgstr "Goi-sorbiera"
+
+msgid "Hungarian"
+msgstr "Hungariera"
+
+msgid "Armenian"
+msgstr "Armeniera"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesiera"
+
+msgid "Igbo"
+msgstr "Igboera"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandiera"
+
+msgid "Italian"
+msgstr "Italiera"
+
+msgid "Japanese"
+msgstr "Japoniera"
+
+msgid "Georgian"
+msgstr "Georgiera"
+
+msgid "Kabyle"
+msgstr "Kabylera"
+
+msgid "Kazakh"
+msgstr "Kazakhera"
+
+msgid "Khmer"
+msgstr "Khmerera"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Koreera"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "Luxenburgera"
+
+msgid "Lithuanian"
+msgstr "Lituaniera"
+
+msgid "Latvian"
+msgstr "Letoniera"
+
+msgid "Macedonian"
+msgstr "Mazedoniera"
+
+msgid "Malayalam"
+msgstr "Malabarera"
+
+msgid "Mongolian"
+msgstr "Mongoliera"
+
+msgid "Marathi"
+msgstr "Marathera"
+
+msgid "Malay"
+msgstr ""
+
+msgid "Burmese"
+msgstr "Birmaniera"
+
+msgid "Norwegian Bokmål"
+msgstr "Bokmåla (Norvegia)"
+
+msgid "Nepali"
+msgstr "Nepalera"
+
+msgid "Dutch"
+msgstr "Nederlandera"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nynorsk (Norvegia)"
+
+msgid "Ossetic"
+msgstr "Osetiera"
+
+msgid "Punjabi"
+msgstr "Punjabera"
+
+msgid "Polish"
+msgstr "Poloniera"
+
+msgid "Portuguese"
+msgstr "Portugesa"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugesa (Brazil)"
+
+msgid "Romanian"
+msgstr "Errumaniera"
+
+msgid "Russian"
+msgstr "Errusiera"
+
+msgid "Slovak"
+msgstr "Eslovakiera"
+
+msgid "Slovenian"
+msgstr "Esloveniera"
+
+msgid "Albanian"
+msgstr "Albaniera"
+
+msgid "Serbian"
+msgstr "Serbiera"
+
+msgid "Serbian Latin"
+msgstr "Serbiera"
+
+msgid "Swedish"
+msgstr "Suediera"
+
+msgid "Swahili"
+msgstr "Swahilia"
+
+msgid "Tamil"
+msgstr "Tamilera"
+
+msgid "Telugu"
+msgstr "Telugua"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "Thailandiera"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "Turkiera"
+
+msgid "Tatar"
+msgstr "Tatarera"
+
+msgid "Udmurt"
+msgstr "Udmurtera"
+
+msgid "Uyghur"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "Ukrainera"
+
+msgid "Urdu"
+msgstr "Urdua"
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr "Vietnamera"
+
+msgid "Simplified Chinese"
+msgstr "Txinera (sinpletua)"
+
+msgid "Traditional Chinese"
+msgstr "Txinera (tradizionala)"
+
+msgid "Messages"
+msgstr "Mezuak"
+
+msgid "Site Maps"
+msgstr "Sitemap-ak"
+
+msgid "Static Files"
+msgstr "Fitxategi estatikoak"
+
+msgid "Syndication"
+msgstr "Sindikazioa"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Orrialde hori ez da zenbaki bat"
+
+msgid "That page number is less than 1"
+msgstr "Orrialde zenbaki hori 1 baino txikiagoa da"
+
+msgid "That page contains no results"
+msgstr "Orrialde horrek ez du emaitzarik"
+
+msgid "Enter a valid value."
+msgstr "Idatzi baleko balio bat."
+
+msgid "Enter a valid domain name."
+msgstr ""
+
+msgid "Enter a valid URL."
+msgstr "Idatzi baleko URL bat."
+
+msgid "Enter a valid integer."
+msgstr "Idatzi baleko zenbaki bat."
+
+msgid "Enter a valid email address."
+msgstr "Idatzi baleko helbide elektroniko bat."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "IPv4 or IPv6"
+msgstr ""
+
+msgid "Enter only digits separated by commas."
+msgstr "Idatzi komaz bereizitako digitoak soilik."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Ziurtatu balio hau gutxienez %(limit_value)s dela (orain %(show_value)s da)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Ziurtatu balio hau %(limit_value)s baino txikiagoa edo berdina dela."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Ziurtatu balio hau %(limit_value)s baino handiagoa edo berdina dela."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Ziurtatu balio honek gutxienez karaktere %(limit_value)d duela "
+"(%(show_value)d ditu)."
+msgstr[1] ""
+"Ziurtatu balio honek gutxienez %(limit_value)d karaktere dituela "
+"(%(show_value)d ditu)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Ziurtatu balio honek gehienez karaktere %(limit_value)d duela "
+"(%(show_value)d ditu)."
+msgstr[1] ""
+"Ziurtatu balio honek gehienez %(limit_value)d karaktere dituela "
+"(%(show_value)d ditu)."
+
+msgid "Enter a number."
+msgstr "Idatzi zenbaki bat."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Ziurtatu digitu %(max)s baino gehiago ez dagoela guztira."
+msgstr[1] "Ziurtatu %(max)s digitu baino gehiago ez dagoela guztira."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Ziurtatu ez dagoela digitu %(max)s baino gehiago komaren atzetik."
+msgstr[1] "Ziurtatu ez dagoela %(max)s digitu baino gehiago komaren atzetik."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "Ziurtatu ez dagoela digitu %(max)s baino gehiago komaren aurretik."
+msgstr[1] "Ziurtatu ez dagoela %(max)s digitu baino gehiago komaren aurretik."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr "Null karaktereak ez daude baimenduta."
+
+msgid "and"
+msgstr "eta"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(field_labels)s hauek dauzkan %(model_name)s dagoeneko existitzen da."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "%(value)r balioa ez da baleko aukera bat."
+
+msgid "This field cannot be null."
+msgstr "Eremu hau ezin daiteke hutsa izan (null)."
+
+msgid "This field cannot be blank."
+msgstr "Eremu honek ezin du hutsik egon."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(field_label)s hori daukan %(model_name)s dagoeneko existitzen da."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Eremuaren mota: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "\"%(value)s\" blioa True edo False izan behar da."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "\"%(value)s\" balioa, True, False edo None izan behar da."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boolearra (True edo False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "String-a (%(max_length)s gehienez)"
+
+msgid "String (unlimited)"
+msgstr ""
+
+msgid "Comma-separated integers"
+msgstr "Komaz bereiztutako zenbaki osoak"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"\"%(value)s\" balioa data formatu okerra dauka. UUUU-HH-EE formatua izan "
+"behar da."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"\"%(value)s\" balioa formatu egokia dauka (UUUU-HH-EE), baina data okerra."
+
+msgid "Date (without time)"
+msgstr "Data (ordurik gabe)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "Data (orduarekin)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "\"%(value)s\" balioa zenbaki hamartarra izan behar da."
+
+msgid "Decimal number"
+msgstr "Zenbaki hamartarra"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"\"%(value)s\" balioa formatu okerra dauka. [EE][[OO:]MM:]ss[.uuuuuu] "
+"formatua izan behar du."
+
+msgid "Duration"
+msgstr "Iraupena"
+
+msgid "Email address"
+msgstr "Helbide elektronikoa"
+
+msgid "File path"
+msgstr "Fitxategiaren bidea"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "\"%(value)s\" float izan behar da."
+
+msgid "Floating point number"
+msgstr "Koma higikorreko zenbakia (float)"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "\"%(value)s\" zenbaki osoa izan behar da."
+
+msgid "Integer"
+msgstr "Zenbaki osoa"
+
+msgid "Big (8 byte) integer"
+msgstr "Zenbaki osoa (handia 8 byte)"
+
+msgid "Small integer"
+msgstr "Osoko txikia"
+
+msgid "IPv4 address"
+msgstr "IPv4 sare-helbidea"
+
+msgid "IP address"
+msgstr "IP helbidea"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "\"%(value)s\" None, True edo False izan behar da."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boolearra (True, False edo None)"
+
+msgid "Positive big integer"
+msgstr "Zenbaki positivo osoa-handia"
+
+msgid "Positive integer"
+msgstr "Osoko positiboa"
+
+msgid "Positive small integer"
+msgstr "Osoko positibo txikia"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (gehienez %(max_length)s)"
+
+msgid "Text"
+msgstr "Testua"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "Ordua"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datu bitar gordinak"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr "\"Universally unique identifier\""
+
+msgid "File"
+msgstr "Fitxategia"
+
+msgid "Image"
+msgstr "Irudia"
+
+msgid "A JSON object"
+msgstr "JSON objektu bat"
+
+msgid "Value must be valid JSON."
+msgstr "Balioa baliozko JSON bat izan behar da."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+"%(field)s %(value)r edukidun %(model)s modeloko instantziarik ez da "
+"exiistitzen."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "1-N (mota erlazionatutako eremuaren arabera)"
+
+msgid "One-to-one relationship"
+msgstr "Bat-bat erlazioa"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s erlazioa"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s erlazioak"
+
+msgid "Many-to-many relationship"
+msgstr "M:N erlazioa"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Eremu hau beharrezkoa da."
+
+msgid "Enter a whole number."
+msgstr "Idatzi zenbaki oso bat."
+
+msgid "Enter a valid date."
+msgstr "Idatzi baleko data bat."
+
+msgid "Enter a valid time."
+msgstr "Idatzi baleko ordu bat."
+
+msgid "Enter a valid date/time."
+msgstr "Idatzi baleko data/ordu bat."
+
+msgid "Enter a valid duration."
+msgstr "Idatzi baleko iraupen bat."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Egun kopuruak {min_days} eta {max_days} artean egon behar du."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Ez da fitxategirik bidali. Egiaztatu formularioaren kodeketa-mota."
+
+msgid "No file was submitted."
+msgstr "Ez da fitxategirik bidali."
+
+msgid "The submitted file is empty."
+msgstr "Bidalitako fitxategia hutsik dago."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Ziurtatu fitxategi izen honek gehienez karaktere %(max)d duela (%(length)d "
+"ditu)."
+msgstr[1] ""
+"Ziurtatu fitxategi izen honek gehienez %(max)d karaktere dituela (%(length)d "
+"ditu)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Mesedez, igo fitxategi bat edo egin klik garbitu botoian, ez biak."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Igo baleko irudi bat. Zuk igotako fitxategia ez da irudi bat edo akatsen bat "
+"du."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Hautatu baleko aukera bat. %(value)s ez dago erabilgarri."
+
+msgid "Enter a list of values."
+msgstr "Idatzi balio-zerrenda bat."
+
+msgid "Enter a complete value."
+msgstr "Sartu balio osoa."
+
+msgid "Enter a valid UUID."
+msgstr "Idatzi baleko UUID bat."
+
+msgid "Enter a valid JSON."
+msgstr "Sartu baliozko JSON bat"
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(%(name)s eremu ezkutua) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "Ordena"
+
+msgid "Delete"
+msgstr "Ezabatu"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Zuzendu bikoiztketa %(field)s eremuan."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Zuzendu bikoizketa %(field)s eremuan. Bakarra izan behar da."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Zuzendu bakarra izan behar den%(field_name)s eremuarentzako bikoiztutako "
+"data %(lookup)s egiteko %(date_field)s eremuan"
+
+msgid "Please correct the duplicate values below."
+msgstr "Zuzendu hurrengo balio bikoiztuak."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Barneko balioa eta gurasoaren instantzia ez datoz bat."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Hautatu aukera zuzen bat. Hautatutakoa ez da zuzena."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "Garbitu"
+
+msgid "Currently"
+msgstr "Orain"
+
+msgid "Change"
+msgstr "Aldatu"
+
+msgid "Unknown"
+msgstr "Ezezaguna"
+
+msgid "Yes"
+msgstr "Bai"
+
+msgid "No"
+msgstr "Ez"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "bai,ez,agian"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "byte %(size)d "
+msgstr[1] "%(size)d byte"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "gauerdia"
+
+msgid "noon"
+msgstr "eguerdia"
+
+msgid "Monday"
+msgstr "astelehena"
+
+msgid "Tuesday"
+msgstr "asteartea"
+
+msgid "Wednesday"
+msgstr "asteazkena"
+
+msgid "Thursday"
+msgstr "osteguna"
+
+msgid "Friday"
+msgstr "ostirala"
+
+msgid "Saturday"
+msgstr "larunbata"
+
+msgid "Sunday"
+msgstr "igandea"
+
+msgid "Mon"
+msgstr "al"
+
+msgid "Tue"
+msgstr "ar"
+
+msgid "Wed"
+msgstr "az"
+
+msgid "Thu"
+msgstr "og"
+
+msgid "Fri"
+msgstr "ol"
+
+msgid "Sat"
+msgstr "lr"
+
+msgid "Sun"
+msgstr "ig"
+
+msgid "January"
+msgstr "urtarrila"
+
+msgid "February"
+msgstr "otsaila"
+
+msgid "March"
+msgstr "martxoa"
+
+msgid "April"
+msgstr "apirila"
+
+msgid "May"
+msgstr "maiatza"
+
+msgid "June"
+msgstr "ekaina"
+
+msgid "July"
+msgstr "uztaila"
+
+msgid "August"
+msgstr "abuztua"
+
+msgid "September"
+msgstr "iraila"
+
+msgid "October"
+msgstr "urria"
+
+msgid "November"
+msgstr "azaroa"
+
+msgid "December"
+msgstr "abendua"
+
+msgid "jan"
+msgstr "urt"
+
+msgid "feb"
+msgstr "ots"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "api"
+
+msgid "may"
+msgstr "mai"
+
+msgid "jun"
+msgstr "eka"
+
+msgid "jul"
+msgstr "uzt"
+
+msgid "aug"
+msgstr "abu"
+
+msgid "sep"
+msgstr "ira"
+
+msgid "oct"
+msgstr "urr"
+
+msgid "nov"
+msgstr "aza"
+
+msgid "dec"
+msgstr "abe"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "urt."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "ots."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "mar."
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "api."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "mai."
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "eka."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "uzt."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "abu."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "ira."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "urr."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "aza."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "abe."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "urtarrila"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "otsaila"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "martxoa"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "apirila"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "maiatza"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "ekaina"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "uztaila"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "abuztua"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "iraila"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "urria"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "azaroa"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "abendua"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Hau ez da baleko IPv6 helbide bat."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "edo"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "urte %(num)d"
+msgstr[1] "%(num)d urte"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "hilabete %(num)d"
+msgstr[1] "%(num)d hilabete"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "aste %(num)d"
+msgstr[1] "%(num)d aste"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "egun %(num)d"
+msgstr[1] "%(num)d egun"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "ordu %(num)d"
+msgstr[1] "%(num)d ordu"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "minutu %(num)d"
+msgstr[1] "%(num)d minutu"
+
+msgid "Forbidden"
+msgstr "Debekatuta"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF egiaztapenak huts egin du. Eskaera abortatu da."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Formularioa bidaltzean gune honek CSRF cookie bat behar duelako ikusten duzu "
+"mezu hau. Cookie hau beharrezkoa da segurtasun arrazoiengatik, zure "
+"nabigatzailea beste batek ordezkatzen ez duela ziurtatzeko."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr "Informazio gehiago erabilgarri dago DEBUG=True ezarrita."
+
+msgid "No year specified"
+msgstr "Ez da urterik zehaztu"
+
+msgid "Date out of range"
+msgstr "Data baliozko tartetik kanpo"
+
+msgid "No month specified"
+msgstr "Ez da hilabeterik zehaztu"
+
+msgid "No day specified"
+msgstr "Ez da egunik zehaztu"
+
+msgid "No week specified"
+msgstr "Ez da asterik zehaztu"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Ez dago %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Etorkizuneko %(verbose_name_plural)s ez dago aukeran %(class_name)s."
+"allow_future False delako"
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Bilaketarekin bat datorren %(verbose_name)s-rik ez dago"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Orri baliogabea (%(page_number)s):%(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr "Direktorio zerrendak ez daude baimenduak."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" ez da existitzen"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "%(directory)s zerrenda"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Instalazioak arrakastaz funtzionatu du! Zorionak!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Ikusi Django %(version)s-ren argitaratze "
+"oharrak"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Zure settings fitxategian DEBUG=True jarrita eta URLrik konfiguratu gabe duzulako "
+"ari zara ikusten orrialde hau."
+
+msgid "Django Documentation"
+msgstr "Django dokumentazioa"
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutoriala: Galdetegi aplikazioa"
+
+msgid "Get started with Django"
+msgstr "Hasi Djangorekin"
+
+msgid "Django Community"
+msgstr "Django Komunitatea"
+
+msgid "Connect, get help, or contribute"
+msgstr "Konektatu, lortu laguntza edo lagundu"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..24755179
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..6d3c5050
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/formats.py
new file mode 100644
index 00000000..61b16fbc
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/eu/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"Y\k\o N j\a"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"Y\k\o N j\a, H:i"
+YEAR_MONTH_FORMAT = r"Y\k\o F"
+MONTH_DAY_FORMAT = r"F\r\e\n j\a"
+SHORT_DATE_FORMAT = "Y-m-d"
+SHORT_DATETIME_FORMAT = "Y-m-d H:i"
+FIRST_DAY_OF_WEEK = 1 # Astelehena
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..95909482
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.po
new file mode 100644
index 00000000..77116682
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/LC_MESSAGES/django.po
@@ -0,0 +1,1351 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Ahmad Hosseini , 2020
+# alirezamastery , 2021
+# ali salehi, 2023
+# Ali Vakilzade , 2015
+# Arash Fazeli , 2012
+# Eric Hamiter , 2019
+# Eshagh , 2022
+# Farshad Asadpour, 2021
+# Jannis Leidel , 2011
+# Mariusz Felisiak , 2021
+# Mazdak Badakhshan , 2014
+# Milad Hazrati , 2019
+# MJafar Mashhadi , 2018
+# Mohammad Hossein Mojtahedi , 2013,2019
+# Natalia, 2025
+# Pouya Abbassi, 2016
+# Pouya Abbassi, 2016
+# rahim agh , 2020-2021
+# Reza Mohammadi , 2013-2016
+# Saeed , 2011
+# Sina Cheraghi , 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: Natalia, 2025\n"
+"Language-Team: Persian (http://app.transifex.com/django/django/language/"
+"fa/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "Afrikaans"
+msgstr "آفریکانس"
+
+msgid "Arabic"
+msgstr "عربی"
+
+msgid "Algerian Arabic"
+msgstr "عربی الجزایری"
+
+msgid "Asturian"
+msgstr "آستوری"
+
+msgid "Azerbaijani"
+msgstr "آذربایجانی"
+
+msgid "Bulgarian"
+msgstr "بلغاری"
+
+msgid "Belarusian"
+msgstr "بلاروس"
+
+msgid "Bengali"
+msgstr "بنگالی"
+
+msgid "Breton"
+msgstr "برتون"
+
+msgid "Bosnian"
+msgstr "بوسنیایی"
+
+msgid "Catalan"
+msgstr "کاتالونیایی"
+
+msgid "Central Kurdish (Sorani)"
+msgstr ""
+
+msgid "Czech"
+msgstr "چکی"
+
+msgid "Welsh"
+msgstr "ویلزی"
+
+msgid "Danish"
+msgstr "دانمارکی"
+
+msgid "German"
+msgstr "آلمانی"
+
+msgid "Lower Sorbian"
+msgstr "صربستانی پایین"
+
+msgid "Greek"
+msgstr "یونانی"
+
+msgid "English"
+msgstr "انگلیسی"
+
+msgid "Australian English"
+msgstr "انگلیسی استرالیایی"
+
+msgid "British English"
+msgstr "انگلیسی بریتیش"
+
+msgid "Esperanto"
+msgstr "اسپرانتو"
+
+msgid "Spanish"
+msgstr "اسپانیایی"
+
+msgid "Argentinian Spanish"
+msgstr "اسپانیایی آرژانتینی"
+
+msgid "Colombian Spanish"
+msgstr "اسپانیایی کلمبیایی"
+
+msgid "Mexican Spanish"
+msgstr "اسپانیولی مکزیکی"
+
+msgid "Nicaraguan Spanish"
+msgstr "نیکاراگوئه اسپانیایی"
+
+msgid "Venezuelan Spanish"
+msgstr "ونزوئلا اسپانیایی"
+
+msgid "Estonian"
+msgstr "استونی"
+
+msgid "Basque"
+msgstr "باسکی"
+
+msgid "Persian"
+msgstr "فارسی"
+
+msgid "Finnish"
+msgstr "فنلاندی"
+
+msgid "French"
+msgstr "فرانسوی"
+
+msgid "Frisian"
+msgstr "فریزی"
+
+msgid "Irish"
+msgstr "ایرلندی"
+
+msgid "Scottish Gaelic"
+msgstr "گیلیک اسکاتلندی"
+
+msgid "Galician"
+msgstr "گالیسیایی"
+
+msgid "Hebrew"
+msgstr "عبری"
+
+msgid "Hindi"
+msgstr "هندی"
+
+msgid "Croatian"
+msgstr "کرواتی"
+
+msgid "Upper Sorbian"
+msgstr "صربستانی بالا"
+
+msgid "Hungarian"
+msgstr "مجاری"
+
+msgid "Armenian"
+msgstr "ارمنی"
+
+msgid "Interlingua"
+msgstr "اینترلینگوا"
+
+msgid "Indonesian"
+msgstr "اندونزیایی"
+
+msgid "Igbo"
+msgstr "ایگبو"
+
+msgid "Ido"
+msgstr "ایدو"
+
+msgid "Icelandic"
+msgstr "ایسلندی"
+
+msgid "Italian"
+msgstr "ایتالیایی"
+
+msgid "Japanese"
+msgstr "ژاپنی"
+
+msgid "Georgian"
+msgstr "گرجی"
+
+msgid "Kabyle"
+msgstr "قبایلی"
+
+msgid "Kazakh"
+msgstr "قزاقستان"
+
+msgid "Khmer"
+msgstr "خمری"
+
+msgid "Kannada"
+msgstr "کنادهای"
+
+msgid "Korean"
+msgstr "کرهای"
+
+msgid "Kyrgyz"
+msgstr "قرقیزی"
+
+msgid "Luxembourgish"
+msgstr "لوگزامبورگی"
+
+msgid "Lithuanian"
+msgstr "لیتوانی"
+
+msgid "Latvian"
+msgstr "لتونیایی"
+
+msgid "Macedonian"
+msgstr "مقدونی"
+
+msgid "Malayalam"
+msgstr "مالایایی"
+
+msgid "Mongolian"
+msgstr "مغولی"
+
+msgid "Marathi"
+msgstr "مِراتی"
+
+msgid "Malay"
+msgstr "Malay"
+
+msgid "Burmese"
+msgstr "برمهای"
+
+msgid "Norwegian Bokmål"
+msgstr "نروژی"
+
+msgid "Nepali"
+msgstr "نپالی"
+
+msgid "Dutch"
+msgstr "هلندی"
+
+msgid "Norwegian Nynorsk"
+msgstr "نروژی Nynorsk"
+
+msgid "Ossetic"
+msgstr "آسی"
+
+msgid "Punjabi"
+msgstr "پنجابی"
+
+msgid "Polish"
+msgstr "لهستانی"
+
+msgid "Portuguese"
+msgstr "پرتغالی"
+
+msgid "Brazilian Portuguese"
+msgstr "پرتغالیِ برزیل"
+
+msgid "Romanian"
+msgstr "رومانی"
+
+msgid "Russian"
+msgstr "روسی"
+
+msgid "Slovak"
+msgstr "اسلواکی"
+
+msgid "Slovenian"
+msgstr "اسلووِنی"
+
+msgid "Albanian"
+msgstr "آلبانیایی"
+
+msgid "Serbian"
+msgstr "صربی"
+
+msgid "Serbian Latin"
+msgstr "صربی لاتین"
+
+msgid "Swedish"
+msgstr "سوئدی"
+
+msgid "Swahili"
+msgstr "سواحیلی"
+
+msgid "Tamil"
+msgstr "تامیلی"
+
+msgid "Telugu"
+msgstr "تلوگویی"
+
+msgid "Tajik"
+msgstr "تاجیک"
+
+msgid "Thai"
+msgstr "تایلندی"
+
+msgid "Turkmen"
+msgstr "ترکمن"
+
+msgid "Turkish"
+msgstr "ترکی"
+
+msgid "Tatar"
+msgstr "تاتار"
+
+msgid "Udmurt"
+msgstr "ادمورت"
+
+msgid "Uyghur"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr "اکراینی"
+
+msgid "Urdu"
+msgstr "اردو"
+
+msgid "Uzbek"
+msgstr "ازبکی"
+
+msgid "Vietnamese"
+msgstr "ویتنامی"
+
+msgid "Simplified Chinese"
+msgstr "چینی سادهشده"
+
+msgid "Traditional Chinese"
+msgstr "چینی سنتی"
+
+msgid "Messages"
+msgstr "پیغامها"
+
+msgid "Site Maps"
+msgstr "نقشههای وبگاه"
+
+msgid "Static Files"
+msgstr "پروندههای استاتیک"
+
+msgid "Syndication"
+msgstr "پیوند"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "شمارهٔ صفحه یک عدد طبیعی نیست"
+
+msgid "That page number is less than 1"
+msgstr "شمارهٔ صفحه کوچکتر از ۱ است"
+
+msgid "That page contains no results"
+msgstr "این صفحه خالی از اطلاعات است"
+
+msgid "Enter a valid value."
+msgstr "یک مقدار معتبر وارد کنید."
+
+msgid "Enter a valid domain name."
+msgstr ""
+
+msgid "Enter a valid URL."
+msgstr "یک نشانی اینترنتی معتبر وارد کنید."
+
+msgid "Enter a valid integer."
+msgstr "یک عدد معتبر وارد کنید."
+
+msgid "Enter a valid email address."
+msgstr "یک ایمیل آدرس معتبر وارد کنید."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"یک \"اسلاگ\" معتبر متشکل از حروف، اعداد، خط زیر یا خط فاصله، وارد کنید. "
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"یک \"اسلاگ\" معتبر وارد کنید که شامل حروف یونیکد، اعداد، خط زیر یا خط فاصله "
+"باشد."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr ""
+
+msgid "IPv4"
+msgstr ""
+
+msgid "IPv6"
+msgstr ""
+
+msgid "IPv4 or IPv6"
+msgstr ""
+
+msgid "Enter only digits separated by commas."
+msgstr "فقط ارقام جدا شده با کاما وارد کنید."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "مطمئن شوید مقدار %(limit_value)s است. (اکنون %(show_value)s می باشد)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "مطمئن شوید این مقدار کوچکتر و یا مساوی %(limit_value)s است."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "مطمئن شوید این مقدار بزرگتر و یا مساوی %(limit_value)s است."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"طول این مقدار باید حداقل %(limit_value)d کاراکتر باشد (طولش %(show_value)d "
+"است)."
+msgstr[1] ""
+"طول این مقدار باید حداقل %(limit_value)d کاراکتر باشد (طولش %(show_value)d "
+"است)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"طول این مقدار باید حداکثر %(limit_value)d کاراکتر باشد (طولش %(show_value)d "
+"است)."
+msgstr[1] ""
+"طول این مقدار باید حداکثر %(limit_value)d کاراکتر باشد (طولش %(show_value)d "
+"است)."
+
+msgid "Enter a number."
+msgstr "یک عدد وارد کنید."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "نباید در مجموع بیش از %(max)s رقم داشته باشد."
+msgstr[1] "نباید در مجموع بیش از %(max)s رقم داشته باشد."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "نباید بیش از %(max)s رقم اعشار داشته باشد."
+msgstr[1] "نباید بیش از %(max)s رقم اعشار داشته باشد."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "نباید بیش از %(max)s رقم قبل ممیز داشته باشد."
+msgstr[1] "نباید بیش از %(max)s رقم قبل ممیز داشته باشد."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"استفاده از پرونده با پسوند '%(extension)s' مجاز نیست. پسوندهای مجاز عبارتند "
+"از: '%(allowed_extensions)s'"
+
+msgid "Null characters are not allowed."
+msgstr "کاراکترهای تهی مجاز نیستند."
+
+msgid "and"
+msgstr "و"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s با این %(field_labels)s وجود دارد."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "مقدار %(value)r انتخاب معتبری نیست. "
+
+msgid "This field cannot be null."
+msgstr "این فیلد نمی تواند پوچ باشد."
+
+msgid "This field cannot be blank."
+msgstr "این فیلد نمی تواند خالی باشد."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s با این %(field_label)s از قبل موجود است."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s باید برای %(lookup_type)s %(date_field_label)s یکتا باشد."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "فیلد با نوع: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "مقدار «%(value)s» باید True یا False باشد."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "مقدار «%(value)s» باید True یا False یا None باشد."
+
+msgid "Boolean (Either True or False)"
+msgstr "بولی (درست یا غلط)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "رشته (تا %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "رشته (بی نهایت)"
+
+msgid "Comma-separated integers"
+msgstr "اعداد صحیح جدا-شده با ویلگول"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"مقدار «%(value)s» در قالب نادرستی وارد شده است. تاریخ باید در قالب YYYY-MM-"
+"DD باشد."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"مقدار تاریخ «%(value)s» با اینکه در قالب درستی (YYYY-MM-DD) است ولی تاریخ "
+"ناممکنی را نشان میدهد."
+
+msgid "Date (without time)"
+msgstr "تاریخ (بدون زمان)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"مقدار \"%(value)s\" یک قالب نامعتبر دارد. باید در قالب YYYY-MM-DD HH:MM[:"
+"ss[.uuuuuu]][TZ] باشد."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"مقدار \"%(value)s\" یک قالب معتبر دارد (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) "
+"اما یک تاریخ/زمان نامعتبر است."
+
+msgid "Date (with time)"
+msgstr "تاریخ (با زمان)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "مقدار '%(value)s' باید عدد دسیمال باشد."
+
+msgid "Decimal number"
+msgstr "عدد دهدهی"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"مقدار «%(value)s» در قالب نادرستی وارد شده است. باید در قالب [DD] [HH:"
+"[MM:]]ss[.uuuuuu] باشد."
+
+msgid "Duration"
+msgstr "بازهٔ زمانی"
+
+msgid "Email address"
+msgstr "نشانی پست الکترونیکی"
+
+msgid "File path"
+msgstr "مسیر پرونده"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "مقدار «%(value)s» باید عدد اعشاری فلوت باشد."
+
+msgid "Floating point number"
+msgstr "عدد اعشاری"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "مقدار «%(value)s» باید عدد حقیقی باشد."
+
+msgid "Integer"
+msgstr "عدد صحیح"
+
+msgid "Big (8 byte) integer"
+msgstr "بزرگ (8 بایت) عدد صحیح"
+
+msgid "Small integer"
+msgstr "عدد صحیح کوچک"
+
+msgid "IPv4 address"
+msgstr "IPv4 آدرس"
+
+msgid "IP address"
+msgstr "نشانی IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "مقدار «%(value)s» باید True یا False یا None باشد."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "بولی (درست، نادرست یا پوچ)"
+
+msgid "Positive big integer"
+msgstr "عدد صحیح مثبت"
+
+msgid "Positive integer"
+msgstr "عدد صحیح مثبت"
+
+msgid "Positive small integer"
+msgstr "مثبت عدد صحیح کوچک"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "تیتر (حداکثر %(max_length)s)"
+
+msgid "Text"
+msgstr "متن"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"مقدار «%(value)s» در قالب نادرستی وارد شده است. باید در قالب HH:MM[:ss[."
+"uuuuuu]] باشد."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"مقدار «%(value)s» با اینکه در قالب درستی (HH:MM[:ss[.uuuuuu]]) است ولی زمان "
+"ناممکنی را نشان میدهد."
+
+msgid "Time"
+msgstr "زمان"
+
+msgid "URL"
+msgstr "نشانی اینترنتی"
+
+msgid "Raw binary data"
+msgstr "دادهٔ دودویی خام"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "\"%(value)s\" یک UUID معتبر نیست."
+
+msgid "Universally unique identifier"
+msgstr "شناسه منحصر به فرد سراسری"
+
+msgid "File"
+msgstr "پرونده"
+
+msgid "Image"
+msgstr "تصویر"
+
+msgid "A JSON object"
+msgstr "یک شیء JSON"
+
+msgid "Value must be valid JSON."
+msgstr "مقدار، باید یک JSON معتبر باشد."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "کلید خارجی ( نوع بر اساس فیلد رابط مشخص میشود )"
+
+msgid "One-to-one relationship"
+msgstr "رابطه یک به یک "
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "رابطه %(from)s به %(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "روابط %(from)s به %(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "رابطه چند به چند"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":؟.!"
+
+msgid "This field is required."
+msgstr "این فیلد لازم است."
+
+msgid "Enter a whole number."
+msgstr "به طور کامل یک عدد وارد کنید."
+
+msgid "Enter a valid date."
+msgstr "یک تاریخ معتبر وارد کنید."
+
+msgid "Enter a valid time."
+msgstr "یک زمان معتبر وارد کنید."
+
+msgid "Enter a valid date/time."
+msgstr "یک تاریخ/زمان معتبر وارد کنید."
+
+msgid "Enter a valid duration."
+msgstr "یک بازهٔ زمانی معتبر وارد کنید."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "عدد روز باید بین {min_days} و {max_days} باشد."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "پروندهای ارسال نشده است. نوع کدگذاری فرم را بررسی کنید."
+
+msgid "No file was submitted."
+msgstr "پروندهای ارسال نشده است."
+
+msgid "The submitted file is empty."
+msgstr "پروندهٔ ارسالشده خالیست."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"طول عنوان پرونده باید حداقل %(max)d کاراکتر باشد (طولش %(length)d است)."
+msgstr[1] ""
+"طول عنوان پرونده باید حداقل %(max)d کاراکتر باشد (طولش %(length)d است)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "لطفا یا فایل ارسال کنید یا دکمه پاک کردن را علامت بزنید، نه هردو."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"یک تصویر معتبر بارگذاری کنید. پروندهای که بارگذاری کردید یا تصویر نبوده و یا "
+"تصویری مخدوش بوده است."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "یک گزینهٔ معتبر انتخاب کنید. %(value)s از گزینههای موجود نیست."
+
+msgid "Enter a list of values."
+msgstr "فهرستی از مقادیر وارد کنید."
+
+msgid "Enter a complete value."
+msgstr "یک مقدار کامل وارد کنید."
+
+msgid "Enter a valid UUID."
+msgstr "یک UUID معتبر وارد کنید."
+
+msgid "Enter a valid JSON."
+msgstr "یک JSON معتبر وارد کنید"
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(فیلد پنهان %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"اطلاعات ManagementForm مفقود یا دستکاری شده است. ردیف های مفقود شده: "
+"%(field_names)s. اگر این مشکل ادامه داشت، آن را گزارش کنید."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "ترتیب:"
+
+msgid "Delete"
+msgstr "حذف"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "لطفا محتوی تکراری برای %(field)s را اصلاح کنید."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "لطفا محتوی تکراری برای %(field)s را که باید یکتا باشد اصلاح کنید."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"لطفا اطلاعات تکراری %(field_name)s را اصلاح کنید که باید در %(lookup)s "
+"یکتا باشد %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "لطفا مقدار تکراری را اصلاح کنید."
+
+msgid "The inline value did not match the parent instance."
+msgstr "مقدار درون خطی موجود با نمونه والد آن مطابقت ندارد."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "یک گزینهٔ معتبر انتخاب کنید. آن گزینه از گزینههای موجود نیست."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" یک مقدار معتبر نیست."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)sدر محدوده زمانی %(current_timezone)s، قابل تفسیر نیست؛ ممکن است "
+"نامشخص باشد یا اصلاً وجود نداشته باشد."
+
+msgid "Clear"
+msgstr "پاک کردن"
+
+msgid "Currently"
+msgstr "در حال حاضر"
+
+msgid "Change"
+msgstr "تغییر"
+
+msgid "Unknown"
+msgstr "ناشناخته"
+
+msgid "Yes"
+msgstr "بله"
+
+msgid "No"
+msgstr "خیر"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "بله,خیر,شاید"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d بایت"
+msgstr[1] "%(size)d بایت"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "ب.ظ."
+
+msgid "a.m."
+msgstr "صبح"
+
+msgid "PM"
+msgstr "بعد از ظهر"
+
+msgid "AM"
+msgstr "صبح"
+
+msgid "midnight"
+msgstr "نیمه شب"
+
+msgid "noon"
+msgstr "ظهر"
+
+msgid "Monday"
+msgstr "دوشنبه"
+
+msgid "Tuesday"
+msgstr "سه شنبه"
+
+msgid "Wednesday"
+msgstr "چهارشنبه"
+
+msgid "Thursday"
+msgstr "پنجشنبه"
+
+msgid "Friday"
+msgstr "جمعه"
+
+msgid "Saturday"
+msgstr "شنبه"
+
+msgid "Sunday"
+msgstr "یکشنبه"
+
+msgid "Mon"
+msgstr "دوشنبه"
+
+msgid "Tue"
+msgstr "سهشنبه"
+
+msgid "Wed"
+msgstr "چهارشنبه"
+
+msgid "Thu"
+msgstr "پنجشنبه"
+
+msgid "Fri"
+msgstr "جمعه"
+
+msgid "Sat"
+msgstr "شنبه"
+
+msgid "Sun"
+msgstr "یکشنبه"
+
+msgid "January"
+msgstr "ژانویه"
+
+msgid "February"
+msgstr "فوریه"
+
+msgid "March"
+msgstr "مارس"
+
+msgid "April"
+msgstr "آوریل"
+
+msgid "May"
+msgstr "مه"
+
+msgid "June"
+msgstr "ژوئن"
+
+msgid "July"
+msgstr "ژوئیه"
+
+msgid "August"
+msgstr "اوت"
+
+msgid "September"
+msgstr "سپتامبر"
+
+msgid "October"
+msgstr "اکتبر"
+
+msgid "November"
+msgstr "نوامبر"
+
+msgid "December"
+msgstr "دسامبر"
+
+msgid "jan"
+msgstr "ژانویه"
+
+msgid "feb"
+msgstr "فوریه"
+
+msgid "mar"
+msgstr "مارس"
+
+msgid "apr"
+msgstr "آوریل"
+
+msgid "may"
+msgstr "مه"
+
+msgid "jun"
+msgstr "ژوئن"
+
+msgid "jul"
+msgstr "ژوئیه"
+
+msgid "aug"
+msgstr "اوت"
+
+msgid "sep"
+msgstr "سپتامبر"
+
+msgid "oct"
+msgstr "اکتبر"
+
+msgid "nov"
+msgstr "نوامبر"
+
+msgid "dec"
+msgstr "دسامبر"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "ژانویه"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "فوریه"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "آوریل"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "مه"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "ژوئن"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "جولای"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "اوت"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "سپتامبر"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "اکتبر"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "نوامبر"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "دسامبر"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "ژانویه"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "فوریه"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "مارس"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "آوریل"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "مه"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "ژوئن"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "جولای"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "اوت"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "سپتامبر"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "اکتبر"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "نوامبر"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "دسامبر"
+
+msgid "This is not a valid IPv6 address."
+msgstr "این مقدار آدرس IPv6 معتبری نیست."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "یا"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr "،"
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d سال"
+msgstr[1] "%(num)d سال"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d ماه"
+msgstr[1] "%(num)d ماه"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d هفته"
+msgstr[1] "%(num)d هفته"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d روز"
+msgstr[1] "%(num)d روز"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d ساعت"
+msgstr[1] "%(num)d ساعت"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d دقیقه"
+msgstr[1] "%(num)d دقیقه"
+
+msgid "Forbidden"
+msgstr "ممنوع"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF تأیید نشد. درخواست لغو شد."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"شما این پیغام را مشاهده میکنید برای اینکه این HTTPS site نیازمند یک "
+"\"Referer header\" برای ارسال توسط مرورگر شما دارد،اما مقداری ارسال "
+"نمیشود . این هدر الزامی میباشد برای امنیت ، در واقع برای اینکه مرورگر شما "
+"مطمین شود hijack به عنوان نفر سوم (third parties) در میان نیست"
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"اگر در مرورگر خود سر تیتر \"Referer\" را غیرفعال کردهاید، لطفاً آن را فعال "
+"کنید، یا حداقل برای این وبگاه یا برای ارتباطات HTTPS و یا برای درخواستهای "
+"\"Same-origin\" فعال کنید."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"اگر شما از تگ استفاده "
+"میکنید یا سر تیتر \"Referrer-Policy: no-referrer\" را اضافه کردهاید، لطفاً "
+"آن را حذف کنید. محافظ CSRF به سرتیتر \"Referer\" نیاز دارد تا بتواند بررسی "
+"سختگیرانه ارجاع دهنده را انجام دهد. اگر ملاحظاتی در مورد حریم خصوصی دارید از "
+"روشهای جایگزین مانند برای ارجاع دادن به وبگاههای "
+"شخص ثالث استفاده کنید."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"شما این پیام را میبینید چون این سایت نیازمند کوکی «جعل درخواست میان وبگاهی "
+"(CSRF)» است. این کوکی برای امنیت شما ضروری است. با این کوکی میتوانیم از "
+"اینکه شخص ثالثی کنترل مرورگرتان را به دست نگرفته است اطمینان پیدا کنیم."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"اگر مرورگر خود را تنظیم کردهاید که کوکی غیرفعال باشد، لطفاً مجدداً آن را فعال "
+"کنید؛ حداقل برای این وبگاه یا برای درخواستهای \"same-origin\"."
+
+msgid "More information is available with DEBUG=True."
+msgstr "اطلاعات بیشتر با DEBUG=True ارائه خواهد شد."
+
+msgid "No year specified"
+msgstr "هیچ سالی مشخص نشده است"
+
+msgid "Date out of range"
+msgstr "تاریخ غیرمجاز است"
+
+msgid "No month specified"
+msgstr "هیچ ماهی مشخص نشده است"
+
+msgid "No day specified"
+msgstr "هیچ روزی مشخص نشده است"
+
+msgid "No week specified"
+msgstr "هیچ هفتهای مشخص نشده است"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "هیچ %(verbose_name_plural)s موجود نیست"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"آینده %(verbose_name_plural)s امکان پذیر نیست زیرا مقدار %(class_name)s."
+"allow_future برابر False تنظیم شده است."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "نوشته تاریخ \"%(datestr)s\" در قالب \"%(format)s\" نامعتبر است"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "هیچ %(verbose_name)s ای مطابق جستجو پیدا نشد."
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "صفحه \"آخرین\" نیست یا شماره صفحه قابل ترجمه به یک عدد صحیح نیست."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "صفحهی اشتباه (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "لیست خالی و \"%(class_name)s.allow_empty\" برابر False است."
+
+msgid "Directory indexes are not allowed here."
+msgstr "شاخص دایرکتوری اینجا قابل قبول نیست."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" وجود ندارد "
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "فهرست %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "نصب درست کار کرد. تبریک می گویم!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"نمایش release notes برای نسخه %(version)s "
+"جنگو"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"شما این صفحه را به این دلیل مشاهده می کنید که DEBUG=True در فایل تنظیمات شما وجود دارد و شما هیچ URL "
+"تنظیم نکرده اید."
+
+msgid "Django Documentation"
+msgstr "مستندات جنگو"
+
+msgid "Topics, references, & how-to’s"
+msgstr "سرفصلها، منابع و دستورالعملها"
+
+msgid "Tutorial: A Polling App"
+msgstr "آموزش گام به گام: برنامکی برای رأیگیری"
+
+msgid "Get started with Django"
+msgstr "شروع به کار با جنگو"
+
+msgid "Django Community"
+msgstr "جامعهٔ جنگو"
+
+msgid "Connect, get help, or contribute"
+msgstr "متصل شوید، کمک بگیرید یا مشارکت کنید"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..77381425
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..266f3567
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/formats.py
new file mode 100644
index 00000000..e7019bc7
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fa/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "G:i"
+DATETIME_FORMAT = "j F Y، ساعت G:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "Y/n/j"
+SHORT_DATETIME_FORMAT = "Y/n/j، G:i"
+FIRST_DAY_OF_WEEK = 6
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..9f2e77d0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po
new file mode 100644
index 00000000..9eefc888
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/LC_MESSAGES/django.po
@@ -0,0 +1,1341 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Aarni Koskela, 2015,2017-2018,2020-2022,2025
+# Antti Kaihola , 2011
+# Jannis Leidel , 2011
+# Jiri Grönroos , 2021,2023
+# Lasse Liehu-Inui , 2015
+# Mika Mäkelä , 2018
+# Klaus Dahlén, 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Aarni Koskela, 2015,2017-2018,2020-2022,2025\n"
+"Language-Team: Finnish (http://app.transifex.com/django/django/language/"
+"fi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "afrikaans"
+
+msgid "Arabic"
+msgstr "arabia"
+
+msgid "Algerian Arabic"
+msgstr "Algerian arabia"
+
+msgid "Asturian"
+msgstr "asturian kieli"
+
+msgid "Azerbaijani"
+msgstr "azeri"
+
+msgid "Bulgarian"
+msgstr "bulgaria"
+
+msgid "Belarusian"
+msgstr "valkovenäjän kieli"
+
+msgid "Bengali"
+msgstr "bengali"
+
+msgid "Breton"
+msgstr "bretoni"
+
+msgid "Bosnian"
+msgstr "bosnia"
+
+msgid "Catalan"
+msgstr "katalaani"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Keskikurdi (sorani)"
+
+msgid "Czech"
+msgstr "tšekki"
+
+msgid "Welsh"
+msgstr "wales"
+
+msgid "Danish"
+msgstr "tanska"
+
+msgid "German"
+msgstr "saksa"
+
+msgid "Lower Sorbian"
+msgstr "Alasorbi"
+
+msgid "Greek"
+msgstr "kreikka"
+
+msgid "English"
+msgstr "englanti"
+
+msgid "Australian English"
+msgstr "australianenglanti"
+
+msgid "British English"
+msgstr "brittienglanti"
+
+msgid "Esperanto"
+msgstr "esperanto"
+
+msgid "Spanish"
+msgstr "espanja"
+
+msgid "Argentinian Spanish"
+msgstr "Argentiinan espanja"
+
+msgid "Colombian Spanish"
+msgstr "Kolumbian espanja"
+
+msgid "Mexican Spanish"
+msgstr "Meksikon espanja"
+
+msgid "Nicaraguan Spanish"
+msgstr "Nicaraguan espanja"
+
+msgid "Venezuelan Spanish"
+msgstr "Venezuelan espanja"
+
+msgid "Estonian"
+msgstr "viro"
+
+msgid "Basque"
+msgstr "baski"
+
+msgid "Persian"
+msgstr "persia"
+
+msgid "Finnish"
+msgstr "suomi"
+
+msgid "French"
+msgstr "ranska"
+
+msgid "Frisian"
+msgstr "friisi"
+
+msgid "Irish"
+msgstr "irlanti"
+
+msgid "Scottish Gaelic"
+msgstr "skottilainen gaeli"
+
+msgid "Galician"
+msgstr "galicia"
+
+msgid "Hebrew"
+msgstr "heprea"
+
+msgid "Hindi"
+msgstr "hindi"
+
+msgid "Croatian"
+msgstr "kroatia"
+
+msgid "Upper Sorbian"
+msgstr "Yläsorbi"
+
+msgid "Hungarian"
+msgstr "unkari"
+
+msgid "Armenian"
+msgstr "armenian kieli"
+
+msgid "Interlingua"
+msgstr "interlingua"
+
+msgid "Indonesian"
+msgstr "indonesia"
+
+msgid "Igbo"
+msgstr "igbo"
+
+msgid "Ido"
+msgstr "ido"
+
+msgid "Icelandic"
+msgstr "islanti"
+
+msgid "Italian"
+msgstr "italia"
+
+msgid "Japanese"
+msgstr "japani"
+
+msgid "Georgian"
+msgstr "georgia"
+
+msgid "Kabyle"
+msgstr "Kabyle"
+
+msgid "Kazakh"
+msgstr "kazakin kieli"
+
+msgid "Khmer"
+msgstr "khmerin kieli"
+
+msgid "Kannada"
+msgstr "kannada"
+
+msgid "Korean"
+msgstr "korea"
+
+msgid "Kyrgyz"
+msgstr "kirgiisi"
+
+msgid "Luxembourgish"
+msgstr "luxemburgin kieli"
+
+msgid "Lithuanian"
+msgstr "liettua"
+
+msgid "Latvian"
+msgstr "latvia"
+
+msgid "Macedonian"
+msgstr "makedonia"
+
+msgid "Malayalam"
+msgstr "malajalam"
+
+msgid "Mongolian"
+msgstr "mongolia"
+
+msgid "Marathi"
+msgstr "marathi"
+
+msgid "Malay"
+msgstr "malaiji"
+
+msgid "Burmese"
+msgstr "burman kieli"
+
+msgid "Norwegian Bokmål"
+msgstr "norja (bokmål)"
+
+msgid "Nepali"
+msgstr "nepalin kieli"
+
+msgid "Dutch"
+msgstr "hollanti"
+
+msgid "Norwegian Nynorsk"
+msgstr "norja (uusnorja)"
+
+msgid "Ossetic"
+msgstr "osseetin kieli"
+
+msgid "Punjabi"
+msgstr "punjabin kieli"
+
+msgid "Polish"
+msgstr "puola"
+
+msgid "Portuguese"
+msgstr "portugali"
+
+msgid "Brazilian Portuguese"
+msgstr "brasilian portugali"
+
+msgid "Romanian"
+msgstr "romania"
+
+msgid "Russian"
+msgstr "venäjä"
+
+msgid "Slovak"
+msgstr "slovakia"
+
+msgid "Slovenian"
+msgstr "slovenia"
+
+msgid "Albanian"
+msgstr "albaani"
+
+msgid "Serbian"
+msgstr "serbia"
+
+msgid "Serbian Latin"
+msgstr "serbian latina"
+
+msgid "Swedish"
+msgstr "ruotsi"
+
+msgid "Swahili"
+msgstr "swahili"
+
+msgid "Tamil"
+msgstr "tamili"
+
+msgid "Telugu"
+msgstr "telugu"
+
+msgid "Tajik"
+msgstr "tadžikki"
+
+msgid "Thai"
+msgstr "thain kieli"
+
+msgid "Turkmen"
+msgstr "turkmeeni"
+
+msgid "Turkish"
+msgstr "turkki"
+
+msgid "Tatar"
+msgstr "tataarin kieli"
+
+msgid "Udmurt"
+msgstr "udmurtti"
+
+msgid "Uyghur"
+msgstr "uiguuri"
+
+msgid "Ukrainian"
+msgstr "ukraina"
+
+msgid "Urdu"
+msgstr "urdu"
+
+msgid "Uzbek"
+msgstr "uzbekki"
+
+msgid "Vietnamese"
+msgstr "vietnam"
+
+msgid "Simplified Chinese"
+msgstr "kiina (yksinkertaistettu)"
+
+msgid "Traditional Chinese"
+msgstr "kiina (perinteinen)"
+
+msgid "Messages"
+msgstr "Viestit"
+
+msgid "Site Maps"
+msgstr "Sivukartat"
+
+msgid "Static Files"
+msgstr "Staattiset tiedostot"
+
+msgid "Syndication"
+msgstr "Syndikointi"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "Annettu sivunumero ei ole kokonaisluku"
+
+msgid "That page number is less than 1"
+msgstr "Annettu sivunumero on alle 1"
+
+msgid "That page contains no results"
+msgstr "Annetulla sivulla ei ole tuloksia"
+
+msgid "Enter a valid value."
+msgstr "Syötä oikea arvo."
+
+msgid "Enter a valid domain name."
+msgstr "Syötä kelvollinen domainnimi."
+
+msgid "Enter a valid URL."
+msgstr "Syötä oikea URL-osoite."
+
+msgid "Enter a valid integer."
+msgstr "Syötä kelvollinen kokonaisluku."
+
+msgid "Enter a valid email address."
+msgstr "Syötä kelvollinen sähköpostiosoite."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Anna lyhytnimi joka koostuu vain kirjaimista, numeroista sekä ala- ja "
+"tavuviivoista."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Anna lyhytnimi joka koostuu vain Unicode-kirjaimista, numeroista sekä ala- "
+"ja tavuviivoista."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Syötä kelvollinen %(protocol)s-osoite."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4- tai IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Vain pilkulla erotetut numeromerkit kelpaavat tässä."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "Tämän arvon on oltava %(limit_value)s (nyt %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Tämän arvon on oltava enintään %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Tämän luvun on oltava vähintään %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Tämän arvon tulee olla askelkoon %(limit_value)smonikerta. "
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Tämän arvon tulee olla arvon %(limit_value)smonikerta, alkaen luvusta "
+"%(offset)s, eli esim. %(offset)s, %(valid_value1)s, %(valid_value2)s, jne."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Varmista, että tämä arvo on vähintään %(limit_value)d merkin pituinen (tällä "
+"hetkellä %(show_value)d)."
+msgstr[1] ""
+"Tämän arvon tulee olla vähintään %(limit_value)d merkkiä pitkä (tällä "
+"hetkellä %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Varmista, että tämä arvo on enintään %(limit_value)d merkin pituinen (tällä "
+"hetkellä %(show_value)d)."
+msgstr[1] ""
+"Tämän arvon tulee olla enintään %(limit_value)d merkkiä pitkä (tällä "
+"hetkellä %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Syötä luku."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Tässä luvussa voi olla yhteensä enintään %(max)s numero."
+msgstr[1] "Tässä luvussa voi olla yhteensä enintään %(max)s numeroa."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Tässä luvussa saa olla enintään %(max)s desimaali."
+msgstr[1] "Tässä luvussa saa olla enintään %(max)s desimaalia."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Tässä luvussa saa olla enintään %(max)s numero ennen desimaalipilkkua."
+msgstr[1] ""
+"Tässä luvussa saa olla enintään %(max)s numeroa ennen desimaalipilkkua."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Pääte \"%(extension)s\" ei ole sallittu. Sallittuja päätteitä ovat "
+"\"%(allowed_extensions)s\"."
+
+msgid "Null characters are not allowed."
+msgstr "Tyhjiä merkkejä (null) ei sallita."
+
+msgid "and"
+msgstr "ja"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s jolla on nämä %(field_labels)s on jo olemassa."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Rajoitetta \"%(name)s\" loukataan."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Arvo %(value)r ei kelpaa."
+
+msgid "This field cannot be null."
+msgstr "Tämän kentän arvo ei voi olla \"null\"."
+
+msgid "This field cannot be blank."
+msgstr "Tämä kenttä ei voi olla tyhjä."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s jolla on tämä %(field_label)s, on jo olemassa."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"\"%(field_label)s\"-kentän on oltava uniikki suhteessa: %(date_field_label)s "
+"%(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Kenttä tyyppiä: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "%(value)s-arvo pitää olla joko tosi tai epätosi."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "%(value)s-arvo pitää olla joko tosi, epätosi tai ei mitään."
+
+msgid "Boolean (Either True or False)"
+msgstr "Totuusarvo: joko tosi (True) tai epätosi (False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Merkkijono (enintään %(max_length)s merkkiä)"
+
+msgid "String (unlimited)"
+msgstr "Merkkijono (rajoittamaton)"
+
+msgid "Comma-separated integers"
+msgstr "Pilkulla erotetut kokonaisluvut"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"%(value)s-arvo on väärässä päivämäärämuodossa. Sen tulee olla VVVV-KK-PP -"
+"muodossa."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"%(value)s-arvo on oikeassa päivämäärämuodossa (VVVV-KK-PP), muttei ole "
+"kelvollinen päivämäärä."
+
+msgid "Date (without time)"
+msgstr "Päivämäärä (ilman kellonaikaa)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"%(value)s-arvon muoto ei kelpaa. Se tulee olla VVVV-KK-PP TT:MM[:ss[.uuuuuu]]"
+"[TZ] -muodossa."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"%(value)s-arvon muoto on oikea (VVVV-KK-PP TT:MM[:ss[.uuuuuu]][TZ]), mutta "
+"päivämäärä/aika ei ole kelvollinen."
+
+msgid "Date (with time)"
+msgstr "Päivämäärä ja kellonaika"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "%(value)s-arvo tulee olla desimaaliluku."
+
+msgid "Decimal number"
+msgstr "Desimaaliluku"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr "%(value)s-arvo pitää olla muodossa [PP] TT:MM[:ss[.uuuuuu]]."
+
+msgid "Duration"
+msgstr "Kesto"
+
+msgid "Email address"
+msgstr "Sähköpostiosoite"
+
+msgid "File path"
+msgstr "Tiedostopolku"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "%(value)s-arvo tulee olla liukuluku."
+
+msgid "Floating point number"
+msgstr "Liukuluku"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "%(value)s-arvo tulee olla kokonaisluku."
+
+msgid "Integer"
+msgstr "Kokonaisluku"
+
+msgid "Big (8 byte) integer"
+msgstr "Suuri (8-tavuinen) kokonaisluku"
+
+msgid "Small integer"
+msgstr "Pieni kokonaisluku"
+
+msgid "IPv4 address"
+msgstr "IPv4-osoite"
+
+msgid "IP address"
+msgstr "IP-osoite"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "%(value)s-arvo tulee olla joko ei mitään, tosi tai epätosi."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Totuusarvo: joko tosi (True), epätosi (False) tai ei mikään (None)"
+
+msgid "Positive big integer"
+msgstr "Suuri positiivinen kokonaisluku"
+
+msgid "Positive integer"
+msgstr "Positiivinen kokonaisluku"
+
+msgid "Positive small integer"
+msgstr "Pieni positiivinen kokonaisluku"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Lyhytnimi (enintään %(max_length)s merkkiä)"
+
+msgid "Text"
+msgstr "Tekstiä"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr "%(value)s-arvo pitää olla muodossa TT:MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"%(value)s-arvo on oikeassa muodossa (TT:MM[:ss[.uuuuuu]]), mutta kellonaika "
+"ei kelpaa."
+
+msgid "Time"
+msgstr "Kellonaika"
+
+msgid "URL"
+msgstr "URL-osoite"
+
+msgid "Raw binary data"
+msgstr "Raaka binaaridata"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "%(value)s ei ole kelvollinen UUID."
+
+msgid "Universally unique identifier"
+msgstr "UUID-tunnus"
+
+msgid "File"
+msgstr "Tiedosto"
+
+msgid "Image"
+msgstr "Kuva"
+
+msgid "A JSON object"
+msgstr "JSON-tietue"
+
+msgid "Value must be valid JSON."
+msgstr "Arvon pitää olla kelvollista JSONia."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Vierasavain (tyyppi määräytyy liittyvän kentän mukaan)"
+
+msgid "One-to-one relationship"
+msgstr "Yksi-yhteen -relaatio"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s -suhde"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s -suhteet"
+
+msgid "Many-to-many relationship"
+msgstr "Moni-moneen -relaatio"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Tämä kenttä vaaditaan."
+
+msgid "Enter a whole number."
+msgstr "Syötä kokonaisluku."
+
+msgid "Enter a valid date."
+msgstr "Syötä oikea päivämäärä."
+
+msgid "Enter a valid time."
+msgstr "Syötä oikea kellonaika."
+
+msgid "Enter a valid date/time."
+msgstr "Syötä oikea pvm/kellonaika."
+
+msgid "Enter a valid duration."
+msgstr "Syötä oikea kesto."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Päivien määrä täytyy olla välillä {min_days} ja {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Tiedostoa ei lähetetty. Tarkista lomakkeen koodaus (encoding)."
+
+msgid "No file was submitted."
+msgstr "Yhtään tiedostoa ei ole lähetetty."
+
+msgid "The submitted file is empty."
+msgstr "Lähetetty tiedosto on tyhjä."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Varmista, että tämä tiedostonimi on enintään %(max)d merkin pituinen (tällä "
+"hetkellä %(length)d)."
+msgstr[1] ""
+"Tämän tiedostonimen pituus tulee olla enintään %(max)d merkkiä pitkä (tällä "
+"hetkellä %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Voit joko lähettää tai poistaa tiedoston, muttei kumpaakin samalla."
+
+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."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Valitse oikea vaihtoehto. %(value)s ei ole vaihtoehtojen joukossa."
+
+msgid "Enter a list of values."
+msgstr "Syötä lista."
+
+msgid "Enter a complete value."
+msgstr "Syötä kokonainen arvo."
+
+msgid "Enter a valid UUID."
+msgstr "Syötä oikea UUID."
+
+msgid "Enter a valid JSON."
+msgstr "Syötä oikea JSON-arvo."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Piilokenttä %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"ManagementForm-tiedot puuttuvat tai niitä on muutettu. Puuttuvat kentät ovat "
+"%(field_names)s. Jos ongelma toistuu, voi olla että joudut raportoimaan "
+"tämän bugina."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Lähetä enintään%(num)d lomake."
+msgstr[1] "Lähetä enintään %(num)d lomaketta."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Lähetä vähintään %(num)d lomake."
+msgstr[1] "Lähetä vähintään %(num)d lomaketta. "
+
+msgid "Order"
+msgstr "Järjestys"
+
+msgid "Delete"
+msgstr "Poista"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Korjaa kaksoisarvo kentälle %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Ole hyvä ja korjaa uniikin kentän %(field)s kaksoisarvo."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Korjaa alla olevat kaksoisarvot."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Liittyvä arvo ei vastannut vanhempaa instanssia."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Valitse oikea vaihtoehto. Valintasi ei löydy vaihtoehtojen joukosta."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" ei ole kelvollinen arvo."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s -arvoa ei pystytty lukemaan aikavyöhykkeellä "
+"%(current_timezone)s; se saattaa olla moniarvoinen tai määrittämätön."
+
+msgid "Clear"
+msgstr "Poista"
+
+msgid "Currently"
+msgstr "Tällä hetkellä"
+
+msgid "Change"
+msgstr "Muokkaa"
+
+msgid "Unknown"
+msgstr "Tuntematon"
+
+msgid "Yes"
+msgstr "Kyllä"
+
+msgid "No"
+msgstr "Ei"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "kyllä,ei,ehkä"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d tavu"
+msgstr[1] "%(size)d tavua"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "ip"
+
+msgid "a.m."
+msgstr "ap"
+
+msgid "PM"
+msgstr "IP"
+
+msgid "AM"
+msgstr "AP"
+
+msgid "midnight"
+msgstr "keskiyö"
+
+msgid "noon"
+msgstr "keskipäivä"
+
+msgid "Monday"
+msgstr "maanantai"
+
+msgid "Tuesday"
+msgstr "tiistai"
+
+msgid "Wednesday"
+msgstr "keskiviikko"
+
+msgid "Thursday"
+msgstr "torstai"
+
+msgid "Friday"
+msgstr "perjantai"
+
+msgid "Saturday"
+msgstr "lauantai"
+
+msgid "Sunday"
+msgstr "sunnuntai"
+
+msgid "Mon"
+msgstr "ma"
+
+msgid "Tue"
+msgstr "ti"
+
+msgid "Wed"
+msgstr "ke"
+
+msgid "Thu"
+msgstr "to"
+
+msgid "Fri"
+msgstr "pe"
+
+msgid "Sat"
+msgstr "la"
+
+msgid "Sun"
+msgstr "su"
+
+msgid "January"
+msgstr "tammikuu"
+
+msgid "February"
+msgstr "helmikuu"
+
+msgid "March"
+msgstr "maaliskuu"
+
+msgid "April"
+msgstr "huhtikuu"
+
+msgid "May"
+msgstr "toukokuu"
+
+msgid "June"
+msgstr "kesäkuu"
+
+msgid "July"
+msgstr "heinäkuu"
+
+msgid "August"
+msgstr "elokuu"
+
+msgid "September"
+msgstr "syyskuu"
+
+msgid "October"
+msgstr "lokakuu"
+
+msgid "November"
+msgstr "marraskuu"
+
+msgid "December"
+msgstr "joulukuu"
+
+msgid "jan"
+msgstr "tam"
+
+msgid "feb"
+msgstr "hel"
+
+msgid "mar"
+msgstr "maa"
+
+msgid "apr"
+msgstr "huh"
+
+msgid "may"
+msgstr "tou"
+
+msgid "jun"
+msgstr "kes"
+
+msgid "jul"
+msgstr "hei"
+
+msgid "aug"
+msgstr "elo"
+
+msgid "sep"
+msgstr "syy"
+
+msgid "oct"
+msgstr "lok"
+
+msgid "nov"
+msgstr "mar"
+
+msgid "dec"
+msgstr "jou"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "tammi"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "helmi"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "maalis"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "huhti"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "touko"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "kesä"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "heinä"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "elo"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "syys"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "loka"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "marras"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "joulu"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "tammikuuta"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "helmikuuta"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "maaliskuuta"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "huhtikuuta"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "toukokuuta"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "kesäkuuta"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "heinäkuuta"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "elokuuta"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "syyskuuta"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "lokakuuta"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "marraskuuta"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "joulukuuta"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Tämä ei ole kelvollinen IPv6-osoite."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "tai"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d vuosi"
+msgstr[1] "%(num)d vuotta"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d kuukausi"
+msgstr[1] "%(num)d kuukautta "
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d viikko"
+msgstr[1] "%(num)d viikkoa"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d päivä"
+msgstr[1] "%(num)d päivää"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d tunti"
+msgstr[1] "%(num)d tuntia"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuutti"
+msgstr[1] "%(num)d minuuttia"
+
+msgid "Forbidden"
+msgstr "Kielletty"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF-vahvistus epäonnistui. Pyyntö hylätty."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Näet tämän viestin, koska tämä HTTPS-sivusto vaatii selaintasi lähettämään "
+"Referer-otsakkeen, mutta sitä ei vastaanotettu. Otsake vaaditaan "
+"turvallisuussyistä, varmistamaan etteivät kolmannet osapuolet ole ottaneet "
+"selaintasi haltuun."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Jos olet konfiguroinut selaimesi olemaan lähettämättä Referer-otsaketta, ole "
+"hyvä ja kytke otsake takaisin päälle ainakin tälle sivulle, HTTPS-"
+"yhteyksille tai saman lähteen (\"same-origin\") pyynnöille."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Jos käytät -tagia tai "
+"\"Referrer-Policy: no-referrer\" -otsaketta, ole hyvä ja poista ne. CSRF-"
+"suojaus vaatii Referer-otsakkeen tehdäkseen tarkan referer-tarkistuksen. Jos "
+"vaadit yksityisyyttä, käytä vaihtoehtoja kuten linkittääksesi kolmannen osapuolen sivuille."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Näet tämän viestin, koska tämä sivusto vaatii CSRF-evästeen "
+"vastaanottaessaan lomaketietoja. Eväste vaaditaan turvallisuussyistä, "
+"varmistamaan etteivät kolmannet osapuolet ole ottaneet selaintasi haltuun."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Jos olet konfiguroinut selaimesi olemaan vastaanottamatta tai lähettämättä "
+"evästeitä, ole hyvä ja kytke evästeet takaisin päälle ainakin tälle sivulle "
+"tai saman lähteen (\"same-origin\") pyynnöille."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Lisätietoja `DEBUG=True`-konfiguraatioasetuksella."
+
+msgid "No year specified"
+msgstr "Vuosi puuttuu"
+
+msgid "Date out of range"
+msgstr "Päivämäärä ei alueella"
+
+msgid "No month specified"
+msgstr "Kuukausi puuttuu"
+
+msgid "No day specified"
+msgstr "Päivä puuttuu"
+
+msgid "No week specified"
+msgstr "Viikko puuttuu"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "%(verbose_name_plural)s: yhtään kohdetta ei löydy"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"%(verbose_name_plural)s: tulevia kohteita ei löydy, koska %(class_name)s."
+"allow_future:n arvo on False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Päivämäärä '%(datestr)s' ei ole muotoa '%(format)s'"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Hakua vastaavaa %(verbose_name)s -kohdetta ei löytynyt"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "Sivunumero ei ole 'last' (viimeinen) eikä näytä luvulta."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Epäkelpo sivu (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Lista on tyhjä, ja '%(class_name)s.allow_empty':n arvo on False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Hakemistolistauksia ei sallita täällä."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" ei ole olemassa"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Hakemistolistaus: %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Asennus toimi! Onneksi olkoon!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Katso Djangon version %(version)s julkaisutiedot"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Näet tämän viestin, koska asetuksissasi on DEBUG = True etkä ole konfiguroinut yhtään URL-"
+"osoitetta."
+
+msgid "Django Documentation"
+msgstr "Django-dokumentaatio"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Aiheet, viittaukset & how-tot"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutoriaali: kyselyapplikaatio"
+
+msgid "Get started with Django"
+msgstr "Miten päästä alkuun Djangolla"
+
+msgid "Django Community"
+msgstr "Django-yhteisö"
+
+msgid "Connect, get help, or contribute"
+msgstr "Verkostoidu, saa apua tai jatkokehitä"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..cf3a9b50
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..9fef4e60
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/formats.py
new file mode 100644
index 00000000..d9fb6d2f
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fi/formats.py
@@ -0,0 +1,36 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j. E Y"
+TIME_FORMAT = "G.i"
+DATETIME_FORMAT = r"j. E Y \k\e\l\l\o G.i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j. F"
+SHORT_DATE_FORMAT = "j.n.Y"
+SHORT_DATETIME_FORMAT = "j.n.Y G.i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '20.3.2014'
+ "%d.%m.%y", # '20.3.14'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H.%M.%S", # '20.3.2014 14.30.59'
+ "%d.%m.%Y %H.%M.%S.%f", # '20.3.2014 14.30.59.000200'
+ "%d.%m.%Y %H.%M", # '20.3.2014 14.30'
+ "%d.%m.%y %H.%M.%S", # '20.3.14 14.30.59'
+ "%d.%m.%y %H.%M.%S.%f", # '20.3.14 14.30.59.000200'
+ "%d.%m.%y %H.%M", # '20.3.14 14.30'
+]
+TIME_INPUT_FORMATS = [
+ "%H.%M.%S", # '14.30.59'
+ "%H.%M.%S.%f", # '14.30.59.000200'
+ "%H.%M", # '14.30'
+]
+
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # Non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..108dbf07
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po
new file mode 100644
index 00000000..34351cc4
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/LC_MESSAGES/django.po
@@ -0,0 +1,1395 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Bruno Brouard , 2021
+# Simon Charette , 2012
+# Claude Paroz , 2013-2025
+# Claude Paroz , 2011
+# Jannis Leidel , 2011
+# Jean-Baptiste Mora, 2014
+# Larlet David , 2011
+# Marie-Cécile Gohier , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Claude Paroz , 2013-2025\n"
+"Language-Team: French (http://app.transifex.com/django/django/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+msgid "Afrikaans"
+msgstr "Afrikaans"
+
+msgid "Arabic"
+msgstr "Arabe"
+
+msgid "Algerian Arabic"
+msgstr "Arabe algérien"
+
+msgid "Asturian"
+msgstr "Asturien"
+
+msgid "Azerbaijani"
+msgstr "Azéri"
+
+msgid "Bulgarian"
+msgstr "Bulgare"
+
+msgid "Belarusian"
+msgstr "Biélorusse"
+
+msgid "Bengali"
+msgstr "Bengali"
+
+msgid "Breton"
+msgstr "Breton"
+
+msgid "Bosnian"
+msgstr "Bosniaque"
+
+msgid "Catalan"
+msgstr "Catalan"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Kurde central (sorani)"
+
+msgid "Czech"
+msgstr "Tchèque"
+
+msgid "Welsh"
+msgstr "Gallois"
+
+msgid "Danish"
+msgstr "Danois"
+
+msgid "German"
+msgstr "Allemand"
+
+msgid "Lower Sorbian"
+msgstr "Bas-sorabe"
+
+msgid "Greek"
+msgstr "Grec"
+
+msgid "English"
+msgstr "Anglais"
+
+msgid "Australian English"
+msgstr "Anglais australien"
+
+msgid "British English"
+msgstr "Anglais britannique"
+
+msgid "Esperanto"
+msgstr "Espéranto"
+
+msgid "Spanish"
+msgstr "Espagnol"
+
+msgid "Argentinian Spanish"
+msgstr "Espagnol argentin"
+
+msgid "Colombian Spanish"
+msgstr "Espagnol colombien"
+
+msgid "Mexican Spanish"
+msgstr "Espagnol mexicain"
+
+msgid "Nicaraguan Spanish"
+msgstr "Espagnol nicaraguayen"
+
+msgid "Venezuelan Spanish"
+msgstr "Espagnol vénézuélien"
+
+msgid "Estonian"
+msgstr "Estonien"
+
+msgid "Basque"
+msgstr "Basque"
+
+msgid "Persian"
+msgstr "Perse"
+
+msgid "Finnish"
+msgstr "Finlandais"
+
+msgid "French"
+msgstr "Français"
+
+msgid "Frisian"
+msgstr "Frison"
+
+msgid "Irish"
+msgstr "Irlandais"
+
+msgid "Scottish Gaelic"
+msgstr "Gaélique écossais"
+
+msgid "Galician"
+msgstr "Galicien"
+
+msgid "Hebrew"
+msgstr "Hébreu"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croate"
+
+msgid "Upper Sorbian"
+msgstr "Haut-sorabe"
+
+msgid "Hungarian"
+msgstr "Hongrois"
+
+msgid "Armenian"
+msgstr "Arménien"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonésien"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandais"
+
+msgid "Italian"
+msgstr "Italien"
+
+msgid "Japanese"
+msgstr "Japonais"
+
+msgid "Georgian"
+msgstr "Géorgien"
+
+msgid "Kabyle"
+msgstr "Kabyle"
+
+msgid "Kazakh"
+msgstr "Kazakh"
+
+msgid "Khmer"
+msgstr "Khmer"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Coréen"
+
+msgid "Kyrgyz"
+msgstr "Kirghiz"
+
+msgid "Luxembourgish"
+msgstr "Luxembourgeois"
+
+msgid "Lithuanian"
+msgstr "Lituanien"
+
+msgid "Latvian"
+msgstr "Letton"
+
+msgid "Macedonian"
+msgstr "Macédonien"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongole"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malais"
+
+msgid "Burmese"
+msgstr "Birman"
+
+msgid "Norwegian Bokmål"
+msgstr "Norvégien bokmål"
+
+msgid "Nepali"
+msgstr "Népalais"
+
+msgid "Dutch"
+msgstr "Néerlandais"
+
+msgid "Norwegian Nynorsk"
+msgstr "Norvégien nynorsk"
+
+msgid "Ossetic"
+msgstr "Ossète"
+
+msgid "Punjabi"
+msgstr "Penjabi"
+
+msgid "Polish"
+msgstr "Polonais"
+
+msgid "Portuguese"
+msgstr "Portugais"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugais brésilien"
+
+msgid "Romanian"
+msgstr "Roumain"
+
+msgid "Russian"
+msgstr "Russe"
+
+msgid "Slovak"
+msgstr "Slovaque"
+
+msgid "Slovenian"
+msgstr "Slovène"
+
+msgid "Albanian"
+msgstr "Albanais"
+
+msgid "Serbian"
+msgstr "Serbe"
+
+msgid "Serbian Latin"
+msgstr "Serbe latin"
+
+msgid "Swedish"
+msgstr "Suédois"
+
+msgid "Swahili"
+msgstr "Swahili"
+
+msgid "Tamil"
+msgstr "Tamoul"
+
+msgid "Telugu"
+msgstr "Télougou"
+
+msgid "Tajik"
+msgstr "Tadjik"
+
+msgid "Thai"
+msgstr "Thaï"
+
+msgid "Turkmen"
+msgstr "Turkmène"
+
+msgid "Turkish"
+msgstr "Turc"
+
+msgid "Tatar"
+msgstr "Tatar"
+
+msgid "Udmurt"
+msgstr "Oudmourte"
+
+msgid "Uyghur"
+msgstr "Ouïghour"
+
+msgid "Ukrainian"
+msgstr "Ukrainien"
+
+msgid "Urdu"
+msgstr "Ourdou"
+
+msgid "Uzbek"
+msgstr "Ouzbek"
+
+msgid "Vietnamese"
+msgstr "Vietnamien"
+
+msgid "Simplified Chinese"
+msgstr "Chinois simplifié"
+
+msgid "Traditional Chinese"
+msgstr "Chinois traditionnel"
+
+msgid "Messages"
+msgstr "Messages"
+
+msgid "Site Maps"
+msgstr "Plans des sites"
+
+msgid "Static Files"
+msgstr "Fichiers statiques"
+
+msgid "Syndication"
+msgstr "Syndication"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Ce numéro de page n’est pas un nombre entier"
+
+msgid "That page number is less than 1"
+msgstr "Ce numéro de page est plus petit que 1"
+
+msgid "That page contains no results"
+msgstr "Cette page ne contient aucun résultat"
+
+msgid "Enter a valid value."
+msgstr "Saisissez une valeur valide."
+
+msgid "Enter a valid domain name."
+msgstr "Saisissez un nom de domaine valide."
+
+msgid "Enter a valid URL."
+msgstr "Saisissez une URL valide."
+
+msgid "Enter a valid integer."
+msgstr "Saisissez un nombre entier valide."
+
+msgid "Enter a valid email address."
+msgstr "Saisissez une adresse de courriel valide."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Ce champ ne doit contenir que des lettres, des nombres, des tirets bas (_) "
+"et des traits d’union."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Ce champ ne doit contenir que des caractères Unicode, des nombres, des "
+"tirets bas (_) et des traits d’union."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Saisissez une adresse %(protocol)s valide."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 ou IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Saisissez uniquement des chiffres séparés par des virgules."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Assurez-vous que cette valeur est %(limit_value)s (actuellement "
+"%(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Assurez-vous que cette valeur est inférieure ou égale à %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Assurez-vous que cette valeur est supérieure ou égale à %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Assurez-vous que cette valeur est un multiple de la taille de pas "
+"%(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Assurez-vous que cette valeur est un multiple de la taille de pas "
+"%(limit_value)s, débutant à %(offset)s, par ex. %(offset)s, "
+"%(valid_value1)s, %(valid_value2)s, etc."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractère "
+"(actuellement %(show_value)d)."
+msgstr[1] ""
+"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractères "
+"(actuellement %(show_value)d)."
+msgstr[2] ""
+"Assurez-vous que cette valeur comporte au moins %(limit_value)d caractères "
+"(actuellement %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractère "
+"(actuellement %(show_value)d)."
+msgstr[1] ""
+"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractères "
+"(actuellement %(show_value)d)."
+msgstr[2] ""
+"Assurez-vous que cette valeur comporte au plus %(limit_value)d caractères "
+"(actuellement %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Saisissez un nombre."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Assurez-vous qu'il n'y a pas plus de %(max)s chiffre au total."
+msgstr[1] "Assurez-vous qu’il n’y a pas plus de %(max)s chiffres au total."
+msgstr[2] "Assurez-vous qu’il n’y a pas plus de %(max)s chiffres au total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+"Assurez-vous qu'il n'y a pas plus de %(max)s chiffre après la virgule."
+msgstr[1] ""
+"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres après la virgule."
+msgstr[2] ""
+"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres après la virgule."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Assurez-vous qu'il n'y a pas plus de %(max)s chiffre avant la virgule."
+msgstr[1] ""
+"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres avant la virgule."
+msgstr[2] ""
+"Assurez-vous qu’il n’y a pas plus de %(max)s chiffres avant la virgule."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"L'extension de fichier « %(extension)s » n’est pas autorisée. Les extensions "
+"autorisées sont : %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Le caractère nul n’est pas autorisé."
+
+msgid "and"
+msgstr "et"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Un objet %(model_name)s avec ces champs %(field_labels)s existe déjà."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "La contrainte « %(name)s » n’est pas respectée."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "La valeur « %(value)r » n’est pas un choix valide."
+
+msgid "This field cannot be null."
+msgstr "Ce champ ne peut pas contenir la valeur nulle."
+
+msgid "This field cannot be blank."
+msgstr "Ce champ ne peut pas être vide."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Un objet %(model_name)s avec ce champ %(field_label)s existe déjà."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s doit être unique pour la partie %(lookup_type)s de "
+"%(date_field_label)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Champ de type : %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "La valeur « %(value)s » doit être soit True (vrai), soit False (faux)."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+"La valeur « %(value)s » doit être True (vrai), False (faux) ou None (vide)."
+
+msgid "Boolean (Either True or False)"
+msgstr "Booléen (soit True (vrai) ou False (faux))"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Chaîne de caractères (jusqu'à %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Chaîne de caractères (illimitée)"
+
+msgid "Comma-separated integers"
+msgstr "Des entiers séparés par une virgule"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Le format de date de la valeur « %(value)s » n’est pas valide. Le format "
+"correct est AAAA-MM-JJ."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Le format de date de la valeur « %(value)s » est correct (AAAA-MM-JJ), mais "
+"la date n’est pas valide."
+
+msgid "Date (without time)"
+msgstr "Date (sans l’heure)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est "
+"AAAA-MM-JJ HH:MM[:ss[.uuuuuu]][FH]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Le format de date de la valeur « %(value)s » est correct (AAAA-MM-JJ HH:MM[:"
+"ss[.uuuuuu]][FH]), mais la date ou l’heure n’est pas valide."
+
+msgid "Date (with time)"
+msgstr "Date (avec l’heure)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "La valeur « %(value)s » doit être un nombre décimal."
+
+msgid "Decimal number"
+msgstr "Nombre décimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est "
+"[JJ] [[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Durée"
+
+msgid "Email address"
+msgstr "Adresse électronique"
+
+msgid "File path"
+msgstr "Chemin vers le fichier"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "La valeur « %(value)s » doit être un nombre à virgule flottante."
+
+msgid "Floating point number"
+msgstr "Nombre à virgule flottante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "La valeur « %(value)s » doit être un nombre entier."
+
+msgid "Integer"
+msgstr "Entier"
+
+msgid "Big (8 byte) integer"
+msgstr "Grand entier (8 octets)"
+
+msgid "Small integer"
+msgstr "Petit nombre entier"
+
+msgid "IPv4 address"
+msgstr "Adresse IPv4"
+
+msgid "IP address"
+msgstr "Adresse IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+"La valeur « %(value)s » doit être None (vide), True (vrai) ou False (faux)."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booléen (soit None (vide), True (vrai) ou False (faux))"
+
+msgid "Positive big integer"
+msgstr "Grand nombre entier positif"
+
+msgid "Positive integer"
+msgstr "Nombre entier positif"
+
+msgid "Positive small integer"
+msgstr "Petit nombre entier positif"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (jusqu'à %(max_length)s car.)"
+
+msgid "Text"
+msgstr "Texte"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Le format de la valeur « %(value)s » n’est pas valide. Le format correct est "
+"HH:MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Le format de la valeur « %(value)s » est correct (HH:MM[:ss[.uuuuuu]]), mais "
+"l’heure n’est pas valide."
+
+msgid "Time"
+msgstr "Heure"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Données binaires brutes"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "La valeur « %(value)s » n’est pas un UUID valide."
+
+msgid "Universally unique identifier"
+msgstr "Identifiant unique universel"
+
+msgid "File"
+msgstr "Fichier"
+
+msgid "Image"
+msgstr "Image"
+
+msgid "A JSON object"
+msgstr "Un objet JSON"
+
+msgid "Value must be valid JSON."
+msgstr "La valeur doit respecter la syntaxe JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+"L’instance %(model)s avec %(value)r dans %(field)s n'est pas un choix valide."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clé étrangère (type défini par le champ lié)"
+
+msgid "One-to-one relationship"
+msgstr "Relation un à un"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Relation %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Relations %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relation plusieurs à plusieurs"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Ce champ est obligatoire."
+
+msgid "Enter a whole number."
+msgstr "Saisissez un nombre entier."
+
+msgid "Enter a valid date."
+msgstr "Saisissez une date valide."
+
+msgid "Enter a valid time."
+msgstr "Saisissez une heure valide."
+
+msgid "Enter a valid date/time."
+msgstr "Saisissez une date et une heure valides."
+
+msgid "Enter a valid duration."
+msgstr "Saisissez une durée valide."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Le nombre de jours doit être entre {min_days} et {max_days}."
+
+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."
+
+msgid "No file was submitted."
+msgstr "Aucun fichier n’a été soumis."
+
+msgid "The submitted file is empty."
+msgstr "Le fichier soumis est vide."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractère "
+"(actuellement %(length)d)."
+msgstr[1] ""
+"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractères "
+"(actuellement %(length)d)."
+msgstr[2] ""
+"Assurez-vous que ce nom de fichier comporte au plus %(max)d caractères "
+"(actuellement %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "Envoyez un fichier ou cochez la case d’effacement, mais pas les deux."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Téléversez une image valide. Le fichier que vous avez transféré n’est pas "
+"une image ou bien est corrompu."
+
+#, 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."
+
+msgid "Enter a list of values."
+msgstr "Saisissez une liste de valeurs."
+
+msgid "Enter a complete value."
+msgstr "Saisissez une valeur complète."
+
+msgid "Enter a valid UUID."
+msgstr "Saisissez un UUID valide."
+
+msgid "Enter a valid JSON."
+msgstr "Saisissez du contenu JSON valide."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr " :"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(champ masqué %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Des données du formulaire ManagementForm sont manquantes ou ont été "
+"manipulées. Champs manquants : %(field_names)s. Vous pourriez créer un "
+"rapport de bogue si le problème persiste."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Veuillez soumettre au plus %(num)d formulaire."
+msgstr[1] "Veuillez soumettre au plus %(num)d formulaires."
+msgstr[2] "Veuillez soumettre au plus %(num)d formulaires."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Veuillez soumettre au moins %(num)d formulaire."
+msgstr[1] "Veuillez soumettre au moins %(num)d formulaires."
+msgstr[2] "Veuillez soumettre au moins %(num)d formulaires."
+
+msgid "Order"
+msgstr "Ordre"
+
+msgid "Delete"
+msgstr "Supprimer"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Corrigez les données en double dans %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Corrigez les données en double dans %(field)s qui doit contenir des valeurs "
+"uniques."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Corrigez les données en double dans %(field_name)s qui doit contenir des "
+"valeurs uniques pour la partie %(lookup)s de %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Corrigez les valeurs en double ci-dessous."
+
+msgid "The inline value did not match the parent instance."
+msgstr "La valeur en ligne ne correspond pas à l’instance parente."
+
+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."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "« %(pk)s » n’est pas une valeur correcte."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"La valeur %(datetime)s n’a pas pu être interprétée dans le fuseau horaire "
+"%(current_timezone)s ; elle est peut-être ambigüe ou elle n’existe pas."
+
+msgid "Clear"
+msgstr "Effacer"
+
+msgid "Currently"
+msgstr "Actuellement"
+
+msgid "Change"
+msgstr "Modifier"
+
+msgid "Unknown"
+msgstr "Inconnu"
+
+msgid "Yes"
+msgstr "Oui"
+
+msgid "No"
+msgstr "Non"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "oui,non,peut-être"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d octet"
+msgstr[1] "%(size)d octets"
+msgstr[2] "%(size)d octets"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s Kio"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s Mio"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s Gio"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s Tio"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s Pio"
+
+msgid "p.m."
+msgstr "après-midi"
+
+msgid "a.m."
+msgstr "matin"
+
+msgid "PM"
+msgstr "Après-midi"
+
+msgid "AM"
+msgstr "Matin"
+
+msgid "midnight"
+msgstr "minuit"
+
+msgid "noon"
+msgstr "midi"
+
+msgid "Monday"
+msgstr "lundi"
+
+msgid "Tuesday"
+msgstr "mardi"
+
+msgid "Wednesday"
+msgstr "mercredi"
+
+msgid "Thursday"
+msgstr "jeudi"
+
+msgid "Friday"
+msgstr "vendredi"
+
+msgid "Saturday"
+msgstr "samedi"
+
+msgid "Sunday"
+msgstr "dimanche"
+
+msgid "Mon"
+msgstr "lun"
+
+msgid "Tue"
+msgstr "mar"
+
+msgid "Wed"
+msgstr "mer"
+
+msgid "Thu"
+msgstr "jeu"
+
+msgid "Fri"
+msgstr "ven"
+
+msgid "Sat"
+msgstr "sam"
+
+msgid "Sun"
+msgstr "dim"
+
+msgid "January"
+msgstr "janvier"
+
+msgid "February"
+msgstr "février"
+
+msgid "March"
+msgstr "mars"
+
+msgid "April"
+msgstr "avril"
+
+msgid "May"
+msgstr "mai"
+
+msgid "June"
+msgstr "juin"
+
+msgid "July"
+msgstr "juillet"
+
+msgid "August"
+msgstr "août"
+
+msgid "September"
+msgstr "septembre"
+
+msgid "October"
+msgstr "octobre"
+
+msgid "November"
+msgstr "novembre"
+
+msgid "December"
+msgstr "décembre"
+
+msgid "jan"
+msgstr "jan"
+
+msgid "feb"
+msgstr "fév"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "avr"
+
+msgid "may"
+msgstr "mai"
+
+msgid "jun"
+msgstr "jui"
+
+msgid "jul"
+msgstr "jul"
+
+msgid "aug"
+msgstr "aoû"
+
+msgid "sep"
+msgstr "sep"
+
+msgid "oct"
+msgstr "oct"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "déc"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "jan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "fév."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "mars"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "avr."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "mai"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "juin"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "juil."
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "août"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "sept."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "oct."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "déc."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Janvier"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Février"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Mars"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Avril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mai"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Juin"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Juillet"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Août"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Septembre"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Octobre"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Novembre"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Décembre"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Ceci n’est pas une adresse IPv6 valide."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "ou"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d année"
+msgstr[1] "%(num)d ans"
+msgstr[2] "%(num)d ans"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mois"
+msgstr[1] "%(num)d mois"
+msgstr[2] "%(num)d mois"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d semaine"
+msgstr[1] "%(num)d semaines"
+msgstr[2] "%(num)d semaines"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d jour"
+msgstr[1] "%(num)d jours"
+msgstr[2] "%(num)d jours"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d heure"
+msgstr[1] "%(num)d heures"
+msgstr[2] "%(num)d heures"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minute"
+msgstr[1] "%(num)d minutes"
+msgstr[2] "%(num)d minutes"
+
+msgid "Forbidden"
+msgstr "Interdit"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "La vérification CSRF a échoué. La requête a été interrompue."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Vous voyez ce message parce que ce site HTTPS exige que le navigateur web "
+"envoie un en-tête « Referer », ce qu’il n'a pas fait. Cet en-tête est exigé "
+"pour des raisons de sécurité, afin de s’assurer que le navigateur n’ait pas "
+"été piraté par un intervenant externe."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Si vous avez désactivé l’envoi des en-têtes « Referer » par votre "
+"navigateur, veuillez les réactiver, au moins pour ce site ou pour les "
+"connexions HTTPS, ou encore pour les requêtes de même origine (« same-"
+"origin »)."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Si vous utilisez la balise "
+"ou que vous incluez l’en-tête « Referrer-Policy: no-referrer », il est "
+"préférable de les enlever. La protection CSRF exige que l’en-tête "
+"``Referer`` effectue un contrôle de référant strict. Si vous vous souciez de "
+"la confidentialité, utilisez des alternatives comme "
+"pour les liens vers des sites tiers."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Vous voyez ce message parce que ce site exige la présence d’un cookie CSRF "
+"lors de l’envoi de formulaires. Ce cookie est nécessaire pour des raisons de "
+"sécurité, afin de s’assurer que le navigateur n’ait pas été piraté par un "
+"intervenant externe."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Si vous avez désactivé l’envoi des cookies par votre navigateur, veuillez "
+"les réactiver au moins pour ce site ou pour les requêtes de même origine (« "
+"same-origin »)."
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+"Des informations plus détaillées sont affichées lorsque la variable DEBUG "
+"vaut True."
+
+msgid "No year specified"
+msgstr "Aucune année indiquée"
+
+msgid "Date out of range"
+msgstr "Date hors limites"
+
+msgid "No month specified"
+msgstr "Aucun mois indiqué"
+
+msgid "No day specified"
+msgstr "Aucun jour indiqué"
+
+msgid "No week specified"
+msgstr "Aucune semaine indiquée"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Pas de %(verbose_name_plural)s disponible"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Pas de %(verbose_name_plural)s disponible dans le futur car %(class_name)s."
+"allow_future est faux (False)."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+"Le format « %(format)s » appliqué à la chaîne date « %(datestr)s » n’est pas "
+"valide"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Aucun objet %(verbose_name)s trouvé en réponse à la requête"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"La page n’est pas la « dernière », elle ne peut pas non plus être convertie "
+"en nombre entier."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Page non valide (%(page_number)s) : %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Liste vide et « %(class_name)s.allow_empty » est faux (False)."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Il n’est pas autorisé d’afficher le contenu de ce répertoire."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "« %(path)s » n’existe pas"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Index de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "L’installation s’est déroulée avec succès. Félicitations !"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Afficher les notes de publication de "
+"Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Vous voyez cette page parce que votre fichier de réglages contient DEBUG=True et que vous n’avez pas "
+"encore configuré d’URL."
+
+msgid "Django Documentation"
+msgstr "Documentation de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Thématiques, références et guides pratiques"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutoriel : une application de sondage"
+
+msgid "Get started with Django"
+msgstr "Premiers pas avec Django"
+
+msgid "Django Community"
+msgstr "Communauté Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Se connecter, obtenir de l’aide ou contribuer"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..b9bcb84c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..b30a2136
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/formats.py
new file mode 100644
index 00000000..338d8ad3
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr/formats.py
@@ -0,0 +1,27 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..ebe9711a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..ba87fe55
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/formats.py
new file mode 100644
index 00000000..84f06571
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_BE/formats.py
@@ -0,0 +1,32 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+ "%d.%m.%y", # '25.10.06'
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..804b2309
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..7b9c85fd
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/formats.py
new file mode 100644
index 00000000..4f1a017f
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CA/formats.py
@@ -0,0 +1,30 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y" # 31 janvier 2024
+TIME_FORMAT = "H\xa0h\xa0i" # 13 h 40
+DATETIME_FORMAT = "j F Y, H\xa0h\xa0i" # 31 janvier 2024, 13 h 40
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "Y-m-d"
+SHORT_DATETIME_FORMAT = "Y-m-d H\xa0h\xa0i"
+FIRST_DAY_OF_WEEK = 0 # Dimanche
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%Y-%m-%d", # '2006-05-15'
+ "%y-%m-%d", # '06-05-15'
+]
+DATETIME_INPUT_FORMATS = [
+ "%Y-%m-%d %H:%M:%S", # '2006-05-15 14:30:57'
+ "%y-%m-%d %H:%M:%S", # '06-05-15 14:30:57'
+ "%Y-%m-%d %H:%M:%S.%f", # '2006-05-15 14:30:57.000200'
+ "%y-%m-%d %H:%M:%S.%f", # '06-05-15 14:30:57.000200'
+ "%Y-%m-%d %H:%M", # '2006-05-15 14:30'
+ "%y-%m-%d %H:%M", # '06-05-15 14:30'
+]
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..3620ad54
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..157798f1
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/formats.py
new file mode 100644
index 00000000..0a63166e
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fr_CH/formats.py
@@ -0,0 +1,36 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j F Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "d.m.Y"
+SHORT_DATETIME_FORMAT = "d.m.Y H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+DATE_INPUT_FORMATS = [
+ "%d.%m.%Y", # '25.10.2006'
+ "%d.%m.%y", # '25.10.06'
+ "%d/%m/%Y", # '25/10/2006'
+ "%d/%m/%y", # '25/10/06'
+]
+DATETIME_INPUT_FORMATS = [
+ "%d.%m.%Y %H:%M:%S", # '25.10.2006 14:30:59'
+ "%d.%m.%Y %H:%M:%S.%f", # '25.10.2006 14:30:59.000200'
+ "%d.%m.%Y %H:%M", # '25.10.2006 14:30'
+ "%d/%m/%Y %H:%M:%S", # '25/10/2006 14:30:59'
+ "%d/%m/%Y %H:%M:%S.%f", # '25/10/2006 14:30:59.000200'
+ "%d/%m/%Y %H:%M", # '25/10/2006 14:30'
+]
+
+# Swiss number formatting can vary based on context (e.g. Fr. 23.50 vs 22,5 m).
+# Django does not support context-specific formatting and uses generic
+# separators.
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "\xa0" # non-breaking space
+NUMBER_GROUPING = 3
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..2eff5df9
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po
new file mode 100644
index 00000000..172f2835
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/LC_MESSAGES/django.po
@@ -0,0 +1,1218 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Jannis Leidel , 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-09-27 22:40+0200\n"
+"PO-Revision-Date: 2019-11-05 00:38+0000\n"
+"Last-Translator: Ramiro Morales\n"
+"Language-Team: Western Frisian (http://www.transifex.com/django/django/"
+"language/fy/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fy\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr ""
+
+msgid "Arabic"
+msgstr ""
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr ""
+
+msgid "Bulgarian"
+msgstr ""
+
+msgid "Belarusian"
+msgstr ""
+
+msgid "Bengali"
+msgstr ""
+
+msgid "Breton"
+msgstr ""
+
+msgid "Bosnian"
+msgstr ""
+
+msgid "Catalan"
+msgstr ""
+
+msgid "Czech"
+msgstr ""
+
+msgid "Welsh"
+msgstr ""
+
+msgid "Danish"
+msgstr ""
+
+msgid "German"
+msgstr ""
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr ""
+
+msgid "English"
+msgstr ""
+
+msgid "Australian English"
+msgstr ""
+
+msgid "British English"
+msgstr ""
+
+msgid "Esperanto"
+msgstr ""
+
+msgid "Spanish"
+msgstr ""
+
+msgid "Argentinian Spanish"
+msgstr ""
+
+msgid "Colombian Spanish"
+msgstr ""
+
+msgid "Mexican Spanish"
+msgstr ""
+
+msgid "Nicaraguan Spanish"
+msgstr ""
+
+msgid "Venezuelan Spanish"
+msgstr ""
+
+msgid "Estonian"
+msgstr ""
+
+msgid "Basque"
+msgstr ""
+
+msgid "Persian"
+msgstr ""
+
+msgid "Finnish"
+msgstr ""
+
+msgid "French"
+msgstr ""
+
+msgid "Frisian"
+msgstr ""
+
+msgid "Irish"
+msgstr ""
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr ""
+
+msgid "Hebrew"
+msgstr ""
+
+msgid "Hindi"
+msgstr ""
+
+msgid "Croatian"
+msgstr ""
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr ""
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr ""
+
+msgid "Indonesian"
+msgstr ""
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr ""
+
+msgid "Italian"
+msgstr ""
+
+msgid "Japanese"
+msgstr ""
+
+msgid "Georgian"
+msgstr ""
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr ""
+
+msgid "Khmer"
+msgstr ""
+
+msgid "Kannada"
+msgstr ""
+
+msgid "Korean"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr ""
+
+msgid "Lithuanian"
+msgstr ""
+
+msgid "Latvian"
+msgstr ""
+
+msgid "Macedonian"
+msgstr ""
+
+msgid "Malayalam"
+msgstr ""
+
+msgid "Mongolian"
+msgstr ""
+
+msgid "Marathi"
+msgstr ""
+
+msgid "Burmese"
+msgstr ""
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr ""
+
+msgid "Dutch"
+msgstr ""
+
+msgid "Norwegian Nynorsk"
+msgstr ""
+
+msgid "Ossetic"
+msgstr ""
+
+msgid "Punjabi"
+msgstr ""
+
+msgid "Polish"
+msgstr ""
+
+msgid "Portuguese"
+msgstr ""
+
+msgid "Brazilian Portuguese"
+msgstr ""
+
+msgid "Romanian"
+msgstr ""
+
+msgid "Russian"
+msgstr ""
+
+msgid "Slovak"
+msgstr ""
+
+msgid "Slovenian"
+msgstr ""
+
+msgid "Albanian"
+msgstr ""
+
+msgid "Serbian"
+msgstr ""
+
+msgid "Serbian Latin"
+msgstr ""
+
+msgid "Swedish"
+msgstr ""
+
+msgid "Swahili"
+msgstr ""
+
+msgid "Tamil"
+msgstr ""
+
+msgid "Telugu"
+msgstr ""
+
+msgid "Thai"
+msgstr ""
+
+msgid "Turkish"
+msgstr ""
+
+msgid "Tatar"
+msgstr ""
+
+msgid "Udmurt"
+msgstr ""
+
+msgid "Ukrainian"
+msgstr ""
+
+msgid "Urdu"
+msgstr ""
+
+msgid "Uzbek"
+msgstr ""
+
+msgid "Vietnamese"
+msgstr ""
+
+msgid "Simplified Chinese"
+msgstr ""
+
+msgid "Traditional Chinese"
+msgstr ""
+
+msgid "Messages"
+msgstr ""
+
+msgid "Site Maps"
+msgstr ""
+
+msgid "Static Files"
+msgstr ""
+
+msgid "Syndication"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr ""
+
+msgid "That page number is less than 1"
+msgstr ""
+
+msgid "That page contains no results"
+msgstr ""
+
+msgid "Enter a valid value."
+msgstr "Jou in falide wearde."
+
+msgid "Enter a valid URL."
+msgstr "Jou in falide URL."
+
+msgid "Enter a valid integer."
+msgstr ""
+
+msgid "Enter a valid email address."
+msgstr ""
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "Jou in falide IPv4-adres."
+
+msgid "Enter a valid IPv6 address."
+msgstr ""
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr ""
+
+msgid "Enter only digits separated by commas."
+msgstr "Jou allinnich sifers, skieden troch komma's."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Enter a number."
+msgstr "Jou in nûmer."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr ""
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "Dit fjild kin net leech wêze."
+
+msgid "This field cannot be blank."
+msgstr ""
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s mei dit %(field_label)s bestiet al."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr ""
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr ""
+
+msgid "Comma-separated integers"
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr ""
+
+msgid "Email address"
+msgstr ""
+
+msgid "File path"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr ""
+
+msgid "Big (8 byte) integer"
+msgstr ""
+
+msgid "IPv4 address"
+msgstr ""
+
+msgid "IP address"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr ""
+
+msgid "Positive integer"
+msgstr ""
+
+msgid "Positive small integer"
+msgstr ""
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr ""
+
+msgid "Small integer"
+msgstr ""
+
+msgid "Text"
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "Raw binary data"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr ""
+
+msgid "Image"
+msgstr ""
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr ""
+
+msgid "One-to-one relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr ""
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "Dit fjild is fereaske."
+
+msgid "Enter a whole number."
+msgstr "Jou in folslein nûmer."
+
+msgid "Enter a valid date."
+msgstr "Jou in falide datum."
+
+msgid "Enter a valid time."
+msgstr "Jou in falide tiid."
+
+msgid "Enter a valid date/time."
+msgstr "Jou in falide datum.tiid."
+
+msgid "Enter a valid duration."
+msgstr ""
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Der is gjin bestân yntsjinne. Kontrolearje it kodearringstype op it "
+"formulier."
+
+msgid "No file was submitted."
+msgstr "Der is gjin bestân yntsjinne."
+
+msgid "The submitted file is empty."
+msgstr "It yntsjinne bestân is leech."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Laad in falide ôfbylding op. It bestân dy't jo opladen hawwe wie net in "
+"ôfbylding of in skansearre ôfbylding."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Selektearje in falide kar. %(value)s is net ien fan de beskikbere karren."
+
+msgid "Enter a list of values."
+msgstr "Jou in list mei weardes."
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr ""
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+msgid "ManagementForm data is missing or has been tampered with"
+msgstr ""
+
+#, python-format
+msgid "Please submit %d or fewer forms."
+msgid_plural "Please submit %d or fewer forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit %d or more forms."
+msgid_plural "Please submit %d or more forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "Oarder"
+
+msgid "Delete"
+msgstr ""
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr ""
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+
+msgid "Please correct the duplicate values below."
+msgstr ""
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr ""
+"Selektearje in falide kar. Dizze kar is net ien fan de beskikbere karren."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr ""
+
+msgid "Currently"
+msgstr ""
+
+msgid "Change"
+msgstr ""
+
+msgid "Unknown"
+msgstr ""
+
+msgid "Yes"
+msgstr ""
+
+msgid "No"
+msgstr ""
+
+msgid "Year"
+msgstr ""
+
+msgid "Month"
+msgstr ""
+
+msgid "Day"
+msgstr ""
+
+msgid "yes,no,maybe"
+msgstr ""
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%s KB"
+msgstr ""
+
+#, python-format
+msgid "%s MB"
+msgstr ""
+
+#, python-format
+msgid "%s GB"
+msgstr ""
+
+#, python-format
+msgid "%s TB"
+msgstr ""
+
+#, python-format
+msgid "%s PB"
+msgstr ""
+
+msgid "p.m."
+msgstr ""
+
+msgid "a.m."
+msgstr ""
+
+msgid "PM"
+msgstr ""
+
+msgid "AM"
+msgstr ""
+
+msgid "midnight"
+msgstr ""
+
+msgid "noon"
+msgstr ""
+
+msgid "Monday"
+msgstr ""
+
+msgid "Tuesday"
+msgstr ""
+
+msgid "Wednesday"
+msgstr ""
+
+msgid "Thursday"
+msgstr ""
+
+msgid "Friday"
+msgstr ""
+
+msgid "Saturday"
+msgstr ""
+
+msgid "Sunday"
+msgstr ""
+
+msgid "Mon"
+msgstr ""
+
+msgid "Tue"
+msgstr ""
+
+msgid "Wed"
+msgstr ""
+
+msgid "Thu"
+msgstr ""
+
+msgid "Fri"
+msgstr ""
+
+msgid "Sat"
+msgstr ""
+
+msgid "Sun"
+msgstr ""
+
+msgid "January"
+msgstr ""
+
+msgid "February"
+msgstr ""
+
+msgid "March"
+msgstr ""
+
+msgid "April"
+msgstr ""
+
+msgid "May"
+msgstr ""
+
+msgid "June"
+msgstr ""
+
+msgid "July"
+msgstr ""
+
+msgid "August"
+msgstr ""
+
+msgid "September"
+msgstr ""
+
+msgid "October"
+msgstr ""
+
+msgid "November"
+msgstr ""
+
+msgid "December"
+msgstr ""
+
+msgid "jan"
+msgstr ""
+
+msgid "feb"
+msgstr ""
+
+msgid "mar"
+msgstr ""
+
+msgid "apr"
+msgstr ""
+
+msgid "may"
+msgstr ""
+
+msgid "jun"
+msgstr ""
+
+msgid "jul"
+msgstr ""
+
+msgid "aug"
+msgstr ""
+
+msgid "sep"
+msgstr ""
+
+msgid "oct"
+msgstr ""
+
+msgid "nov"
+msgstr ""
+
+msgid "dec"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr ""
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr ""
+
+msgctxt "alt. month"
+msgid "January"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "February"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "March"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "April"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "May"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "June"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "July"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "August"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "September"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "October"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "November"
+msgstr ""
+
+msgctxt "alt. month"
+msgid "December"
+msgstr ""
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr ""
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ""
+
+#, python-format
+msgid "%d year"
+msgid_plural "%d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d month"
+msgid_plural "%d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d week"
+msgid_plural "%d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d day"
+msgid_plural "%d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d hour"
+msgid_plural "%d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%d minute"
+msgid_plural "%d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "0 minutes"
+msgstr ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your Web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+
+msgid "More information is available with DEBUG=True."
+msgstr ""
+
+msgid "No year specified"
+msgstr ""
+
+msgid "Date out of range"
+msgstr ""
+
+msgid "No month specified"
+msgstr ""
+
+msgid "No day specified"
+msgstr ""
+
+msgid "No week specified"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr ""
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr ""
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr ""
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+
+msgid "Directory indexes are not allowed here."
+msgstr ""
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr ""
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr ""
+
+msgid "Django: the Web framework for perfectionists with deadlines."
+msgstr ""
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+
+msgid "The install worked successfully! Congratulations!"
+msgstr ""
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+
+msgid "Django Documentation"
+msgstr ""
+
+msgid "Topics, references, & how-to’s"
+msgstr ""
+
+msgid "Tutorial: A Polling App"
+msgstr ""
+
+msgid "Get started with Django"
+msgstr ""
+
+msgid "Django Community"
+msgstr ""
+
+msgid "Connect, get help, or contribute"
+msgstr ""
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..fcd6f7d0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..a070ee37
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/formats.py
new file mode 100644
index 00000000..3825be44
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/fy/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+# DATE_FORMAT =
+# TIME_FORMAT =
+# DATETIME_FORMAT =
+# YEAR_MONTH_FORMAT =
+# MONTH_DAY_FORMAT =
+# SHORT_DATE_FORMAT =
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+# DECIMAL_SEPARATOR =
+# THOUSAND_SEPARATOR =
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..e55658a3
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po
new file mode 100644
index 00000000..21a1e197
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/LC_MESSAGES/django.po
@@ -0,0 +1,1426 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Aindriú Mac Giolla Eoin, 2024
+# Claude Paroz , 2020
+# Jannis Leidel , 2011
+# John Moylan , 2013
+# John Stafford , 2013
+# Seán de Búrca , 2011
+# Luke Blaney , 2019
+# Michael Thornhill , 2011-2012,2015
+# Séamus Ó Cúile , 2011
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-05-22 11:46-0300\n"
+"PO-Revision-Date: 2024-10-07 06:49+0000\n"
+"Last-Translator: Aindriú Mac Giolla Eoin, 2024\n"
+"Language-Team: Irish (http://app.transifex.com/django/django/language/ga/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ga\n"
+"Plural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : "
+"4);\n"
+
+msgid "Afrikaans"
+msgstr "Afracáinis"
+
+msgid "Arabic"
+msgstr "Araibis"
+
+msgid "Algerian Arabic"
+msgstr "Araibis na hAilgéire"
+
+msgid "Asturian"
+msgstr "Astúiris"
+
+msgid "Azerbaijani"
+msgstr "Asarbaiseáinis"
+
+msgid "Bulgarian"
+msgstr "Bulgáiris"
+
+msgid "Belarusian"
+msgstr "Bealarúisis"
+
+msgid "Bengali"
+msgstr "Beangáilis"
+
+msgid "Breton"
+msgstr "Briotánach"
+
+msgid "Bosnian"
+msgstr "Boisnis"
+
+msgid "Catalan"
+msgstr "Catalóinis"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Coirdis Láir (Sorani)"
+
+msgid "Czech"
+msgstr "Seicis"
+
+msgid "Welsh"
+msgstr "Breatnais"
+
+msgid "Danish"
+msgstr "Danmhairgis "
+
+msgid "German"
+msgstr "Gearmáinis"
+
+msgid "Lower Sorbian"
+msgstr "Sorbais Íochtarach"
+
+msgid "Greek"
+msgstr "Gréigis"
+
+msgid "English"
+msgstr "Béarla"
+
+msgid "Australian English"
+msgstr "Béarla Astrálach"
+
+msgid "British English"
+msgstr "Béarla na Breataine"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spáinnis"
+
+msgid "Argentinian Spanish"
+msgstr "Spáinnis na hAirgintíne"
+
+msgid "Colombian Spanish"
+msgstr "Spáinnis na Colóime"
+
+msgid "Mexican Spanish"
+msgstr "Spáinnis Mheicsiceo "
+
+msgid "Nicaraguan Spanish"
+msgstr "Spáinnis Nicearagua"
+
+msgid "Venezuelan Spanish"
+msgstr "Spáinnis Veiniséalach"
+
+msgid "Estonian"
+msgstr "Eastóinis"
+
+msgid "Basque"
+msgstr "Bascais"
+
+msgid "Persian"
+msgstr "Peirsis"
+
+msgid "Finnish"
+msgstr "Fionlainnis"
+
+msgid "French"
+msgstr "Fraincis"
+
+msgid "Frisian"
+msgstr "Freaslainnis"
+
+msgid "Irish"
+msgstr "Gaeilge"
+
+msgid "Scottish Gaelic"
+msgstr "Gaeilge na hAlban"
+
+msgid "Galician"
+msgstr "Gailísis"
+
+msgid "Hebrew"
+msgstr "Eabhrais"
+
+msgid "Hindi"
+msgstr "Hiondúis"
+
+msgid "Croatian"
+msgstr "Cróitis"
+
+msgid "Upper Sorbian"
+msgstr "Sorbian Uachtarach"
+
+msgid "Hungarian"
+msgstr "Ungáiris"
+
+msgid "Armenian"
+msgstr "Airméinis"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indinéisis"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Íoslainnis"
+
+msgid "Italian"
+msgstr "Iodáilis"
+
+msgid "Japanese"
+msgstr "Seapáinis"
+
+msgid "Georgian"
+msgstr "Seoirsis"
+
+msgid "Kabyle"
+msgstr "Cabaill"
+
+msgid "Kazakh"
+msgstr "Casaicis"
+
+msgid "Khmer"
+msgstr "Ciméiris"
+
+msgid "Kannada"
+msgstr "Cannadais"
+
+msgid "Korean"
+msgstr "Cóiréis"
+
+msgid "Kyrgyz"
+msgstr "Chirgeastáin"
+
+msgid "Luxembourgish"
+msgstr "Lucsamburgach"
+
+msgid "Lithuanian"
+msgstr "Liotuáinis"
+
+msgid "Latvian"
+msgstr "Laitvis"
+
+msgid "Macedonian"
+msgstr "Macadóinis"
+
+msgid "Malayalam"
+msgstr "Mailéalaimis"
+
+msgid "Mongolian"
+msgstr "Mongóilis"
+
+msgid "Marathi"
+msgstr "Maraitis"
+
+msgid "Malay"
+msgstr "Malaeis"
+
+msgid "Burmese"
+msgstr "Burmais"
+
+msgid "Norwegian Bokmål"
+msgstr "Ioruais Bokmål"
+
+msgid "Nepali"
+msgstr "Neipeailis"
+
+msgid "Dutch"
+msgstr "Ollainnis"
+
+msgid "Norwegian Nynorsk"
+msgstr "Ioruais Nynorsk"
+
+msgid "Ossetic"
+msgstr "Oiséitis"
+
+msgid "Punjabi"
+msgstr "Puinseáibis"
+
+msgid "Polish"
+msgstr "Polainnis"
+
+msgid "Portuguese"
+msgstr "Portaingéilis"
+
+msgid "Brazilian Portuguese"
+msgstr "Portaingéilis na Brasaíle"
+
+msgid "Romanian"
+msgstr "Rómáinis"
+
+msgid "Russian"
+msgstr "Rúisis"
+
+msgid "Slovak"
+msgstr "Slóvaicis"
+
+msgid "Slovenian"
+msgstr "Slóivéinis"
+
+msgid "Albanian"
+msgstr "Albáinis"
+
+msgid "Serbian"
+msgstr "Seirbis"
+
+msgid "Serbian Latin"
+msgstr "Seirbis (Laidineach)"
+
+msgid "Swedish"
+msgstr "Sualainnis"
+
+msgid "Swahili"
+msgstr "Svahaílis"
+
+msgid "Tamil"
+msgstr "Tamailis"
+
+msgid "Telugu"
+msgstr "Teileagúis"
+
+msgid "Tajik"
+msgstr "Táidsíc"
+
+msgid "Thai"
+msgstr "Téalainnis"
+
+msgid "Turkmen"
+msgstr "Tuircméinis"
+
+msgid "Turkish"
+msgstr "Tuircis"
+
+msgid "Tatar"
+msgstr "Tatairis"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Uyghur"
+msgstr "Uighur"
+
+msgid "Ukrainian"
+msgstr "Úcráinis"
+
+msgid "Urdu"
+msgstr "Urdais"
+
+msgid "Uzbek"
+msgstr "Úisbéicis"
+
+msgid "Vietnamese"
+msgstr "Vítneamais"
+
+msgid "Simplified Chinese"
+msgstr "Sínis Simplithe"
+
+msgid "Traditional Chinese"
+msgstr "Sínis Traidisiúnta"
+
+msgid "Messages"
+msgstr "Teachtaireachtaí"
+
+msgid "Site Maps"
+msgstr "Léarscáileanna Suímh"
+
+msgid "Static Files"
+msgstr "Comhaid Statach"
+
+msgid "Syndication"
+msgstr "Sindeacáitiú"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Ní slánuimhir í an uimhir leathanaigh sin"
+
+msgid "That page number is less than 1"
+msgstr "Tá uimhir an leathanaigh sin níos lú ná 1"
+
+msgid "That page contains no results"
+msgstr "Níl aon torthaí ar an leathanach sin"
+
+msgid "Enter a valid value."
+msgstr "Iontráil luach bailí"
+
+msgid "Enter a valid domain name."
+msgstr "Cuir isteach ainm fearainn bailí."
+
+msgid "Enter a valid URL."
+msgstr "Iontráil URL bailí."
+
+msgid "Enter a valid integer."
+msgstr "Cuir isteach slánuimhir bhailí."
+
+msgid "Enter a valid email address."
+msgstr "Cuir isteach seoladh ríomhphoist bailí."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Cuir isteach “sluga” bailí ar a bhfuil litreacha, uimhreacha, foscórthaí nó "
+"fleiscíní."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Cuir isteach “sluga” bailí ar a bhfuil litreacha Unicode, uimhreacha, fo-"
+"scóranna, nó fleiscíní."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Cuir isteach seoladh bailí %(protocol)s."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 nó IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Ná hiontráil ach digití atá deighilte le camóga."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Cinntigh go bhfuil an luach seo %(limit_value)s (tá sé %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Cinntigh go bhfuil an luach seo níos lú ná nó cothrom le %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Cinntigh go bhfuil an luach seo níos mó ná nó cothrom le %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "Cinntigh gur iolraí de chéimmhéid %(limit_value)s an luach seo."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Cinntigh gur iolraí de chéimmhéid %(limit_value)s an luach seo, ag tosú ó "
+"%(offset)s, m.sh. %(offset)s, %(valid_value1)s, %(valid_value2)s, agus mar "
+"sin de."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[1] ""
+"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[2] ""
+"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[3] ""
+"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[4] ""
+"Cinntigh go bhfuil ar a laghad %(limit_value)d carachtar ag an luach seo (tá "
+"%(show_value)d aige)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[1] ""
+"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[2] ""
+"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[3] ""
+"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
+"%(show_value)d aige)."
+msgstr[4] ""
+"Cinntigh go bhfuil %(limit_value)d carachtar ar a mhéad ag an luach seo (tá "
+"%(show_value)d aige)."
+
+msgid "Enter a number."
+msgstr "Iontráil uimhir."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
+msgstr[1] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
+msgstr[2] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
+msgstr[3] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
+msgstr[4] "Cinntigh nach bhfuil níos mó ná %(max)s digit san iomlán."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Cinntigh nach bhfuil níos mó ná %(max)s ionad deachúlach ann."
+msgstr[1] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
+msgstr[2] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
+msgstr[3] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
+msgstr[4] "Cinntigh nach bhfuil níos mó ná %(max)s de dheachúlacha ann."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Cinntigh nach bhfuil níos mó ná %(max)s digit ann roimh an bpointe deachúil."
+msgstr[1] ""
+"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
+msgstr[2] ""
+"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
+msgstr[3] ""
+"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
+msgstr[4] ""
+"Cinntigh nach bhfuil níos mó ná %(max)s dhigit roimh an bpointe deachúil."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Ní cheadaítear iarmhír chomhaid “%(extension)s”. Is iad seo a leanas "
+"eisínteachtaí ceadaithe: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Ní cheadaítear carachtair null."
+
+msgid "and"
+msgstr "agus"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Tá %(model_name)s leis an %(field_labels)s seo ann cheana."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Tá srian “%(name)s” sáraithe."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Ní rogha bhailí é luach %(value)r."
+
+msgid "This field cannot be null."
+msgstr "Ní cheadaítear luach nialasach sa réimse seo."
+
+msgid "This field cannot be blank."
+msgstr "Ní cheadaítear luach nialasach sa réimse seo."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Tá %(model_name)s leis an %(field_label)s seo ann cheana."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"Caithfidh %(field_label)s a bheith uathúil le haghaidh %(date_field_label)s "
+"%(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Réimse de Cineál: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Caithfidh luach “%(value)s” a bheith Fíor nó Bréagach."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Caithfidh luach “%(value)s” a bheith Fíor, Bréagach, nó Neamhní."
+
+msgid "Boolean (Either True or False)"
+msgstr "Boole"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Teaghrán (suas go %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Teaghrán (gan teorainn)"
+
+msgid "Comma-separated integers"
+msgstr "Slánuimhireacha camóg-scartha"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Tá formáid dáta neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
+"bhformáid BBBB-MM-LL."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Tá an fhormáid cheart ag luach “%(value)s” (BBBB-MM-DD) ach is dáta "
+"neamhbhailí é."
+
+msgid "Date (without time)"
+msgstr "Dáta (gan am)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith san "
+"fhormáid BBBB-MM-DD HH:MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Tá an fhormáid cheart ag luach “%(value)s” (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) ach is dáta/am neamhbhailí é."
+
+msgid "Date (with time)"
+msgstr "Dáta (le am)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Caithfidh luach “%(value)s” a bheith ina uimhir dheachúil."
+
+msgid "Decimal number"
+msgstr "Uimhir deachúlach"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
+"bhformáid [DD] [[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Fad"
+
+msgid "Email address"
+msgstr "R-phost"
+
+msgid "File path"
+msgstr "Conair comhaid"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Caithfidh luach “%(value)s” a bheith ina shnámhán."
+
+msgid "Floating point number"
+msgstr "Snámhphointe"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Caithfidh luach “%(value)s” a bheith ina shlánuimhir."
+
+msgid "Integer"
+msgstr "Slánuimhir"
+
+msgid "Big (8 byte) integer"
+msgstr "Mór (8 byte) slánuimhi"
+
+msgid "Small integer"
+msgstr "Slánuimhir beag"
+
+msgid "IPv4 address"
+msgstr "Seoladh IPv4"
+
+msgid "IP address"
+msgstr "Seoladh IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Ní mór luach “%(value)s” a bheith Easpa, Fíor nó Bréagach."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Boole (Fíor, Bréagach nó Dada)"
+
+msgid "Positive big integer"
+msgstr "Slánuimhir mhór dhearfach"
+
+msgid "Positive integer"
+msgstr "Slánuimhir dearfach"
+
+msgid "Positive small integer"
+msgstr "Slánuimhir beag dearfach"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (suas go %(max_length)s)"
+
+msgid "Text"
+msgstr "Téacs"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Tá formáid neamhbhailí ag luach “%(value)s”. Caithfidh sé a bheith i "
+"bhformáid HH:MM[:ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Tá an fhormáid cheart ag luach “%(value)s” (HH:MM[:ss[.uuuuuu]]) ach is am "
+"neamhbhailí é."
+
+msgid "Time"
+msgstr "Am"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Sonraí dénártha amh"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "Ní UUID bailí é “%(value)s”."
+
+msgid "Universally unique identifier"
+msgstr "Aitheantóir uathúil uilíoch"
+
+msgid "File"
+msgstr "Comhaid"
+
+msgid "Image"
+msgstr "Íomhá"
+
+msgid "A JSON object"
+msgstr "Réad JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Caithfidh an luach a bheith bailí JSON."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "Níl sampla %(model)s le %(field)s %(value)r ann."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Eochair Eachtracha (cineál a chinnfear de réir réimse a bhaineann)"
+
+msgid "One-to-one relationship"
+msgstr "Duine-le-duine caidreamh"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "%(from)s-%(to)s caidreamh"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "%(from)s-%(to)s caidrimh"
+
+msgid "Many-to-many relationship"
+msgstr "Go leor le go leor caidreamh"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Tá an réimse seo riachtanach."
+
+msgid "Enter a whole number."
+msgstr "Iontráil slánuimhir."
+
+msgid "Enter a valid date."
+msgstr "Iontráil dáta bailí."
+
+msgid "Enter a valid time."
+msgstr "Iontráil am bailí."
+
+msgid "Enter a valid date/time."
+msgstr "Iontráil dáta/am bailí."
+
+msgid "Enter a valid duration."
+msgstr "Cuir isteach ré bailí."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "Caithfidh líon na laethanta a bheith idir {min_days} agus {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "Níor seoladh comhad. Deimhnigh cineál an ionchódaithe ar an bhfoirm."
+
+msgid "No file was submitted."
+msgstr "Níor seoladh aon chomhad."
+
+msgid "The submitted file is empty."
+msgstr "Tá an comhad a seoladh folamh."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
+"%(length)d aige)."
+msgstr[1] ""
+"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
+"%(length)d aige)."
+msgstr[2] ""
+"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
+"%(length)d aige)."
+msgstr[3] ""
+"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
+"%(length)d aige)."
+msgstr[4] ""
+"Cinntigh go bhfuil %(max)d carachtar ar a mhéad ag an gcomhadainm seo (tá "
+"%(length)d aige)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Cuir ceachtar isteach comhad nó an ticbhosca soiléir, ní féidir an dá "
+"sheiceáil."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Uasluchtaigh íomhá bhailí. Níorbh íomhá é an comhad a d'uasluchtaigh tú, nó "
+"b'íomhá thruaillithe é."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Déan rogha bhailí. Ní ceann de na roghanna é %(value)s."
+
+msgid "Enter a list of values."
+msgstr "Cuir liosta de luachanna isteach."
+
+msgid "Enter a complete value."
+msgstr "Cuir isteach luach iomlán."
+
+msgid "Enter a valid UUID."
+msgstr "Cuir isteach UUID bailí."
+
+msgid "Enter a valid JSON."
+msgstr "Cuir isteach JSON bailí."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Réimse folaithe %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Tá sonraí ManagementForm in easnamh nó ar cuireadh isteach orthu. Réimsí ar "
+"iarraidh: %(field_names)s. Seans go mbeidh ort tuairisc fhabht a chomhdú má "
+"leanann an cheist."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Cuir isteach %(num)d foirm ar a mhéad."
+msgstr[1] "Cuir isteach %(num)d foirm ar a mhéad."
+msgstr[2] "Cuir isteach %(num)d foirm ar a mhéad."
+msgstr[3] "Cuir isteach %(num)d foirm ar a mhéad."
+msgstr[4] "Cuir isteach %(num)d foirm ar a mhéad."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Cuir isteach ar a laghad %(num)d foirm."
+msgstr[1] "Cuir isteach %(num)d foirm ar a laghad."
+msgstr[2] "Cuir isteach %(num)d foirm ar a laghad."
+msgstr[3] "Cuir isteach %(num)d foirm ar a laghad."
+msgstr[4] "Cuir isteach %(num)d foirm ar a laghad."
+
+msgid "Order"
+msgstr "Ord"
+
+msgid "Delete"
+msgstr "Scrios"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Le do thoil ceartaigh an sonra dúbail le %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Ceart le do thoil na sonraí a dhúbailt le haghaidh %(field)s, chaithfidh a "
+"bheith uathúil."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Ceart le do thoil na sonraí a dhúbailt le haghaidh %(field_name)s ní mór a "
+"bheith uaithúil le haghaidh an %(lookup)s i %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Le do thoil ceartaigh na luachanna dúbail thíos."
+
+msgid "The inline value did not match the parent instance."
+msgstr "Níor mheaitseáil an luach inlíne leis an gcás tuismitheora."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Déan rogha bhailí. Ní ceann de na roghanna é do roghasa."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "Ní luach bailí é “%(pk)s”."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"Níorbh fhéidir %(datetime)s a léirmhíniú i gcrios ama %(current_timezone)s; "
+"d'fhéadfadh sé a bheith débhríoch nó b'fhéidir nach bhfuil sé ann."
+
+msgid "Clear"
+msgstr "Glan"
+
+msgid "Currently"
+msgstr "Faoi láthair"
+
+msgid "Change"
+msgstr "Athraigh"
+
+msgid "Unknown"
+msgstr "Anaithnid"
+
+msgid "Yes"
+msgstr "Tá"
+
+msgid "No"
+msgstr "Níl"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "tá,níl,b'fhéidir"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d bheart"
+msgstr[1] "%(size)d bheart"
+msgstr[2] "%(size)d bheart"
+msgstr[3] "%(size)d mbeart"
+msgstr[4] "%(size)d beart"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "i.n."
+
+msgid "a.m."
+msgstr "r.n."
+
+msgid "PM"
+msgstr "IN"
+
+msgid "AM"
+msgstr "RN"
+
+msgid "midnight"
+msgstr "meán oíche"
+
+msgid "noon"
+msgstr "nóin"
+
+msgid "Monday"
+msgstr "Dé Luain"
+
+msgid "Tuesday"
+msgstr "Dé Máirt"
+
+msgid "Wednesday"
+msgstr "Dé Céadaoin"
+
+msgid "Thursday"
+msgstr "Déardaoin"
+
+msgid "Friday"
+msgstr "Dé hAoine"
+
+msgid "Saturday"
+msgstr "Dé Sathairn"
+
+msgid "Sunday"
+msgstr "Dé Domhnaigh"
+
+msgid "Mon"
+msgstr "L"
+
+msgid "Tue"
+msgstr "M"
+
+msgid "Wed"
+msgstr "C"
+
+msgid "Thu"
+msgstr "D"
+
+msgid "Fri"
+msgstr "A"
+
+msgid "Sat"
+msgstr "S"
+
+msgid "Sun"
+msgstr "D"
+
+msgid "January"
+msgstr "Eanáir"
+
+msgid "February"
+msgstr "Feabhra"
+
+msgid "March"
+msgstr "Márta"
+
+msgid "April"
+msgstr "Aibreán"
+
+msgid "May"
+msgstr "Bealtaine"
+
+msgid "June"
+msgstr "Meitheamh"
+
+msgid "July"
+msgstr "Iúil"
+
+msgid "August"
+msgstr "Lúnasa"
+
+msgid "September"
+msgstr "Meán Fómhair"
+
+msgid "October"
+msgstr "Deireadh Fómhair"
+
+msgid "November"
+msgstr "Samhain"
+
+msgid "December"
+msgstr "Nollaig"
+
+msgid "jan"
+msgstr "ean"
+
+msgid "feb"
+msgstr "feabh"
+
+msgid "mar"
+msgstr "márta"
+
+msgid "apr"
+msgstr "aib"
+
+msgid "may"
+msgstr "beal"
+
+msgid "jun"
+msgstr "meith"
+
+msgid "jul"
+msgstr "iúil"
+
+msgid "aug"
+msgstr "lún"
+
+msgid "sep"
+msgstr "mfómh"
+
+msgid "oct"
+msgstr "dfómh"
+
+msgid "nov"
+msgstr "samh"
+
+msgid "dec"
+msgstr "noll"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Ean."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feabh."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Márta"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Aib."
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Beal."
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Meith."
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Iúil"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Lún."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "MFómh."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "DFómh."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Samh."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Noll."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Mí Eanáir"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Mí Feabhra"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Mí na Márta"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Mí Aibreáin"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Mí na Bealtaine"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Mí an Mheithimh"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Mí Iúil"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Mí Lúnasa"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Mí Mheán Fómhair"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Mí Dheireadh Fómhair"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Mí na Samhna"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Mí na Nollag"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Ní seoladh IPv6 bailí é seo."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "nó"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d bhliain"
+msgstr[1] "%(num)d bliain"
+msgstr[2] "%(num)d bliain"
+msgstr[3] "%(num)d bliain"
+msgstr[4] "%(num)d bliain"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mí"
+msgstr[1] "%(num)d míonna"
+msgstr[2] "%(num)d míonna"
+msgstr[3] "%(num)d míonna"
+msgstr[4] "%(num)d míonna"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d seachtain"
+msgstr[1] "%(num)d seachtainí"
+msgstr[2] "%(num)d seachtainí"
+msgstr[3] "%(num)d seachtainí"
+msgstr[4] "%(num)d seachtainí"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d lá"
+msgstr[1] "%(num)d laethanta"
+msgstr[2] "%(num)d laethanta"
+msgstr[3] "%(num)d laethanta"
+msgstr[4] "%(num)d laethanta"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d uair"
+msgstr[1] "%(num)d huaireanta"
+msgstr[2] "%(num)d huaireanta"
+msgstr[3] "%(num)d huaireanta"
+msgstr[4] "%(num)d huaireanta"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d nóiméad"
+msgstr[1] "%(num)d nóiméad"
+msgstr[2] "%(num)d nóiméad"
+msgstr[3] "%(num)d nóiméad"
+msgstr[4] "%(num)d nóiméad"
+
+msgid "Forbidden"
+msgstr "Toirmiscthe"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Theip ar fhíorú CSRF. Cuireadh deireadh leis an iarratas."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Tá an teachtaireacht seo á fheiceáil agat toisc go bhfuil “ceanntásc "
+"tarchuir” ag teastáil ón suíomh HTTPS seo le bheith seolta ag do bhrabhsálaí "
+"gréasáin, ach níor seoladh aon cheann. Tá an ceanntásc seo ag teastáil ar "
+"chúiseanna slándála, lena chinntiú nach bhfuil do bhrabhsálaí á fuadach ag "
+"tríú páirtithe."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Má tá do bhrabhsálaí cumraithe agat chun ceanntásca “Tagairtí” a dhíchumasú, "
+"le do thoil déan iad a athchumasú, le do thoil don suíomh seo, nó do naisc "
+"HTTPS, nó d’iarratais “ar an mbunús céanna”."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Má tá an chlib 1 á úsáid agat nó má tá an ceanntásc “Polasaí Atreoraithe: "
+"gan atreorú” san áireamh, bain amach iad le do thoil. Éilíonn an chosaint "
+"CSRF go bhfuil an ceanntásc “Tagairtí” chun seiceáil docht atreoraithe a "
+"dhéanamh. Má tá imní ort faoi phríobháideachas, bain úsáid as roghanna eile "
+"amhail le haghaidh naisc chuig láithreáin tríú "
+"páirtí."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Tá an teachtaireacht seo á fheiceáil agat toisc go bhfuil fianán CSRF ag "
+"teastáil ón suíomh seo agus foirmeacha á gcur isteach agat. Tá an fianán seo "
+"ag teastáil ar chúiseanna slándála, lena chinntiú nach bhfuil do bhrabhsálaí "
+"á fuadach ag tríú páirtithe."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Má tá do bhrabhsálaí cumraithe agat chun fianáin a dhíchumasú, le do thoil "
+"athchumasaigh iad, le do thoil, le haghaidh an tsuímh seo ar a laghad, nó le "
+"haghaidh iarratais “ar an mbunús céanna”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Tá tuilleadh eolais ar fáil le DEBUG=True."
+
+msgid "No year specified"
+msgstr "Bliain gan sonrú"
+
+msgid "Date out of range"
+msgstr "Dáta as raon"
+
+msgid "No month specified"
+msgstr "Mí gan sonrú"
+
+msgid "No day specified"
+msgstr "Lá gan sonrú"
+
+msgid "No week specified"
+msgstr "Seachtain gan sonrú"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Gan %(verbose_name_plural)s ar fáil"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Níl %(verbose_name_plural)s sa todhchaí ar fáil mar tá %(class_name)s."
+"allow_future Bréagach."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "Teaghrán dáta neamhbhailí “%(datestr)s” tugtha formáid “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Níl bhfuarthas %(verbose_name)s le hadhaigh an iarratas"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Níl an leathanach “deireadh”, agus ní féidir é a thiontú go slánuimhir."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Leathanach neamhbhailí (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "Tá liosta folamh agus “%(class_name)s.allow_empty” bréagach."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Níl innéacsanna chomhadlann cheadaítear anseo."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "Níl “%(path)s” ann"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Innéacs de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "D'éirigh leis an suiteáil! Comhghairdeachas!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Féach ar nótaí scaoilte le haghaidh Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Tá an leathanach seo á fheiceáil agat toisc go bhfuil DEBUG=True i do chomhad socruithe agus nach bhfuil aon "
+"URL cumraithe agat."
+
+msgid "Django Documentation"
+msgstr "Doiciméadú Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Ábhair, tagairtí, & conas atá"
+
+msgid "Tutorial: A Polling App"
+msgstr "Teagaisc: A Vótaíocht Aip"
+
+msgid "Get started with Django"
+msgstr "Tosaigh le Django"
+
+msgid "Django Community"
+msgstr "Pobal Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Ceangail, faigh cúnamh, nó ranníoc"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..af69ad28
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..63610920
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/formats.py
new file mode 100644
index 00000000..7cde1a56
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/ga/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "H:i"
+# DATETIME_FORMAT =
+# YEAR_MONTH_FORMAT =
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "j M Y"
+# SHORT_DATETIME_FORMAT =
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..f177bbd9
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.po
new file mode 100644
index 00000000..ba28564c
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/LC_MESSAGES/django.po
@@ -0,0 +1,1386 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# Michael Bauer, 2014
+# GunChleoc, 2015-2017,2021
+# GunChleoc, 2015
+# GunChleoc, 2014-2015
+# Michael Bauer, 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-09-21 10:22+0200\n"
+"PO-Revision-Date: 2021-11-20 14:00+0000\n"
+"Last-Translator: GunChleoc\n"
+"Language-Team: Gaelic, Scottish (http://www.transifex.com/django/django/"
+"language/gd/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: gd\n"
+"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : "
+"(n > 2 && n < 20) ? 2 : 3;\n"
+
+msgid "Afrikaans"
+msgstr "Afraganais"
+
+msgid "Arabic"
+msgstr "Arabais"
+
+msgid "Algerian Arabic"
+msgstr "Arabais Aildireach"
+
+msgid "Asturian"
+msgstr "Astùrais"
+
+msgid "Azerbaijani"
+msgstr "Asarbaideànais"
+
+msgid "Bulgarian"
+msgstr "Bulgarais"
+
+msgid "Belarusian"
+msgstr "Bealaruisis"
+
+msgid "Bengali"
+msgstr "Beangailis"
+
+msgid "Breton"
+msgstr "Breatnais"
+
+msgid "Bosnian"
+msgstr "Bosnais"
+
+msgid "Catalan"
+msgstr "Catalanais"
+
+msgid "Czech"
+msgstr "Seacais"
+
+msgid "Welsh"
+msgstr "Cuimris"
+
+msgid "Danish"
+msgstr "Danmhairgis"
+
+msgid "German"
+msgstr "Gearmailtis"
+
+msgid "Lower Sorbian"
+msgstr "Sòrbais Ìochdarach"
+
+msgid "Greek"
+msgstr "Greugais"
+
+msgid "English"
+msgstr "Beurla"
+
+msgid "Australian English"
+msgstr "Beurla Astràilia"
+
+msgid "British English"
+msgstr "Beurla Bhreatainn"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Spàinntis"
+
+msgid "Argentinian Spanish"
+msgstr "Spàinntis na h-Argantaine"
+
+msgid "Colombian Spanish"
+msgstr "Spàinntis Choloimbia"
+
+msgid "Mexican Spanish"
+msgstr "Spàinntis Mheagsagach"
+
+msgid "Nicaraguan Spanish"
+msgstr "Spàinntis Niocaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Spàinntis na Bheiniseala"
+
+msgid "Estonian"
+msgstr "Eastoinis"
+
+msgid "Basque"
+msgstr "Basgais"
+
+msgid "Persian"
+msgstr "Farsaidh"
+
+msgid "Finnish"
+msgstr "Fionnlannais"
+
+msgid "French"
+msgstr "Fraingis"
+
+msgid "Frisian"
+msgstr "Frìsis"
+
+msgid "Irish"
+msgstr "Gaeilge"
+
+msgid "Scottish Gaelic"
+msgstr "Gàidhlig"
+
+msgid "Galician"
+msgstr "Gailìsis"
+
+msgid "Hebrew"
+msgstr "Eabhra"
+
+msgid "Hindi"
+msgstr "Hindis"
+
+msgid "Croatian"
+msgstr "Cròthaisis"
+
+msgid "Upper Sorbian"
+msgstr "Sòrbais Uachdarach"
+
+msgid "Hungarian"
+msgstr "Ungairis"
+
+msgid "Armenian"
+msgstr "Airmeinis"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Innd-Innsis"
+
+msgid "Igbo"
+msgstr "Igbo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Innis Tìlis"
+
+msgid "Italian"
+msgstr "Eadailtis"
+
+msgid "Japanese"
+msgstr "Seapanais"
+
+msgid "Georgian"
+msgstr "Cairtbheilis"
+
+msgid "Kabyle"
+msgstr "Kabyle"
+
+msgid "Kazakh"
+msgstr "Casachais"
+
+msgid "Khmer"
+msgstr "Cmèar"
+
+msgid "Kannada"
+msgstr "Kannada"
+
+msgid "Korean"
+msgstr "Coirèanais"
+
+msgid "Kyrgyz"
+msgstr "Cìorgasais"
+
+msgid "Luxembourgish"
+msgstr "Lugsamburgais"
+
+msgid "Lithuanian"
+msgstr "Liotuainis"
+
+msgid "Latvian"
+msgstr "Laitbheis"
+
+msgid "Macedonian"
+msgstr "Masadonais"
+
+msgid "Malayalam"
+msgstr "Malayalam"
+
+msgid "Mongolian"
+msgstr "Mongolais"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malaidhis"
+
+msgid "Burmese"
+msgstr "Burmais"
+
+msgid "Norwegian Bokmål"
+msgstr "Nirribhis (Bokmål)"
+
+msgid "Nepali"
+msgstr "Neapàlais"
+
+msgid "Dutch"
+msgstr "Duitsis"
+
+msgid "Norwegian Nynorsk"
+msgstr "Nirribhis (Nynorsk)"
+
+msgid "Ossetic"
+msgstr "Ossetic"
+
+msgid "Punjabi"
+msgstr "Panjabi"
+
+msgid "Polish"
+msgstr "Pòlainnis"
+
+msgid "Portuguese"
+msgstr "Portagailis"
+
+msgid "Brazilian Portuguese"
+msgstr "Portagailis Bhraisileach"
+
+msgid "Romanian"
+msgstr "Romàinis"
+
+msgid "Russian"
+msgstr "Ruisis"
+
+msgid "Slovak"
+msgstr "Slòbhacais"
+
+msgid "Slovenian"
+msgstr "Slòbhainis"
+
+msgid "Albanian"
+msgstr "Albàinis"
+
+msgid "Serbian"
+msgstr "Sèirbis"
+
+msgid "Serbian Latin"
+msgstr "Sèirbis (Laideann)"
+
+msgid "Swedish"
+msgstr "Suainis"
+
+msgid "Swahili"
+msgstr "Kiswahili"
+
+msgid "Tamil"
+msgstr "Taimilis"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr "Taidigis"
+
+msgid "Thai"
+msgstr "Tàidh"
+
+msgid "Turkmen"
+msgstr "Turcmanais"
+
+msgid "Turkish"
+msgstr "Turcais"
+
+msgid "Tatar"
+msgstr "Tatarais"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Ukrainian"
+msgstr "Ucràinis"
+
+msgid "Urdu"
+msgstr "Ùrdu"
+
+msgid "Uzbek"
+msgstr "Usbagais"
+
+msgid "Vietnamese"
+msgstr "Bhiet-Namais"
+
+msgid "Simplified Chinese"
+msgstr "Sìnis Shimplichte"
+
+msgid "Traditional Chinese"
+msgstr "Sìnis Thradaiseanta"
+
+msgid "Messages"
+msgstr "Teachdaireachdan"
+
+msgid "Site Maps"
+msgstr "Mapaichean-làraich"
+
+msgid "Static Files"
+msgstr "Faidhlichean stadastaireachd"
+
+msgid "Syndication"
+msgstr "Siondacaideadh"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Chan eil àireamh na duilleige seo 'na àireamh slàn"
+
+msgid "That page number is less than 1"
+msgstr "Tha àireamh na duilleige seo nas lugha na 1"
+
+msgid "That page contains no results"
+msgstr "Chan eil toradh aig an duilleag seo"
+
+msgid "Enter a valid value."
+msgstr "Cuir a-steach luach dligheach."
+
+msgid "Enter a valid URL."
+msgstr "Cuir a-steach URL dligheach."
+
+msgid "Enter a valid integer."
+msgstr "Cuir a-steach àireamh slàin dhligheach."
+
+msgid "Enter a valid email address."
+msgstr "Cuir a-steach seòladh puist-d dligheach."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Cuir a-steach “sluga” dligheach anns nach eil ach litrichean, àireamhan, fo-"
+"loidhnichean is tàthanan."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Cuir a-steach “sluga” dligheach anns nach eil ach litrichean Unicode, "
+"àireamhan, fo-loidhnichean is tàthanan."
+
+msgid "Enter a valid IPv4 address."
+msgstr "Cuir a-steach seòladh IPv4 dligheach."
+
+msgid "Enter a valid IPv6 address."
+msgstr "Cuir a-steach seòladh IPv6 dligheach."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "Cuir a-steach seòladh IPv4 no IPv6 dligheach."
+
+msgid "Enter only digits separated by commas."
+msgstr "Na cuir a-steach ach àireamhan ’gan sgaradh le cromagan."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Dèan cinnteach gu bheil an luach seo %(limit_value)s (’s e %(show_value)s a "
+"th’ ann)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr ""
+"Dèan cinnteach gu bheil an luach seo nas lugha na no co-ionnan ri "
+"%(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr ""
+"Dèan cinnteach gu bheil an luach seo nas motha na no co-ionnan ri "
+"%(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ "
+"char as lugha (tha %(show_value)d aige an-dràsta)."
+msgstr[1] ""
+"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ "
+"char as lugha (tha %(show_value)d aige an-dràsta)."
+msgstr[2] ""
+"Dèan cinnteach gu bheil %(limit_value)d caractaran aig an luach seo air a’ "
+"char as lugha (tha %(show_value)d aige an-dràsta)."
+msgstr[3] ""
+"Dèan cinnteach gu bheil %(limit_value)d caractar aig an luach seo air a’ "
+"char as lugha (tha %(show_value)d aige an-dràsta)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ "
+"char as motha (tha %(show_value)d aige an-dràsta)."
+msgstr[1] ""
+"Dèan cinnteach gu bheil %(limit_value)d charactar aig an luach seo air a’ "
+"char as motha (tha %(show_value)d aige an-dràsta)."
+msgstr[2] ""
+"Dèan cinnteach gu bheil %(limit_value)d caractaran aig an luach seo air a’ "
+"char as motha (tha %(show_value)d aige an-dràsta)."
+msgstr[3] ""
+"Dèan cinnteach gu bheil %(limit_value)d caractar aig an luach seo air a’ "
+"char as motha (tha %(show_value)d aige an-dràsta)."
+
+msgid "Enter a number."
+msgstr "Cuir a-steach àireamh."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan."
+msgstr[1] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan."
+msgstr[2] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamhan ann gu h-iomlan."
+msgstr[3] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann gu h-iomlan."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann."
+msgstr[1] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann."
+msgstr[2] "Dèan cinnteach nach eil barrachd air %(max)s ionadan deicheach ann."
+msgstr[3] "Dèan cinnteach nach eil barrachd air %(max)s ionad deicheach ann."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing "
+"dheicheach."
+msgstr[1] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing "
+"dheicheach."
+msgstr[2] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamhan ann ron phuing "
+"dheicheach."
+msgstr[3] ""
+"Dèan cinnteach nach eil barrachd air %(max)s àireamh ann ron phuing "
+"dheicheach."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Chan eil an leudachan faidhle “%(extension)s” ceadaichte. Seo na leudachain "
+"a tha ceadaichte: %(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Chan eil caractaran null ceadaichte."
+
+msgid "and"
+msgstr "agus"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Tha %(model_name)s lis a’ %(field_labels)s seo ann mar-thà."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "Chan eil an luach %(value)r ’na roghainn dhligheach."
+
+msgid "This field cannot be null."
+msgstr "Chan fhaod an raon seo a bhith ’na neoni."
+
+msgid "This field cannot be blank."
+msgstr "Chan fhaod an raon seo a bhith bàn."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "Tha %(model_name)s leis a’ %(field_label)s seo ann mar-thà."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'.
+#. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"Chan fhaod %(field_label)s a bhith ann ach aon turas airson "
+"%(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Raon dhen t-seòrsa: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "Feumaidh “%(value)s” a bhith True no False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "Feumaidh “%(value)s” a bhith True, False no None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Booleach (True no False)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Sreang (suas ri %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "Àireamhan slàna sgaraichte le cromagan"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"Tha fòrmat cinn-là mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith "
+"san fhòrmat BBBB-MM-LL."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"Tha fòrmat mar bu chòir (BBBB-MM-LL) aig an luach “%(value)s” ach tha an "
+"ceann-là mì-dligheach."
+
+msgid "Date (without time)"
+msgstr "Ceann-là (gun àm)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san "
+"fhòrmat BBBB-MM-LL HH:MM[:dd[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"Tha fòrmat mar bu chòir (BBBB-MM-LL HH:MM[:dd[.uuuuuu]][TZ]) aig an luach "
+"“%(value)s” ach tha an ceann-là/an t-àm mì-dligheach."
+
+msgid "Date (with time)"
+msgstr "Ceann-là (le àm)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "Feumaidh “%(value)s” a bhith ’na àireamh dheicheach."
+
+msgid "Decimal number"
+msgstr "Àireamh dheicheach"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san "
+"fhòrmat [DD] [[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "Faid"
+
+msgid "Email address"
+msgstr "Seòladh puist-d"
+
+msgid "File path"
+msgstr "Slighe an fhaidhle"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "Feumaidh “%(value)s” a bhith ’na àireamh floda."
+
+msgid "Floating point number"
+msgstr "Àireamh le puing floda"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "Feumaidh “%(value)s” a bhith ’na àireamh shlàn."
+
+msgid "Integer"
+msgstr "Àireamh shlàn"
+
+msgid "Big (8 byte) integer"
+msgstr "Mòr-àireamh shlàn (8 baidht)"
+
+msgid "Small integer"
+msgstr "Beag-àireamh slàn"
+
+msgid "IPv4 address"
+msgstr "Seòladh IPv4"
+
+msgid "IP address"
+msgstr "Seòladh IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "Feumaidh “%(value)s” a bhith None, True no False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleach (True, False no None)"
+
+msgid "Positive big integer"
+msgstr "Àireamh shlàn dhearbh"
+
+msgid "Positive integer"
+msgstr "Àireamh shlàn dhearbh"
+
+msgid "Positive small integer"
+msgstr "Beag-àireamh shlàn dhearbh"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Sluga (suas ri %(max_length)s)"
+
+msgid "Text"
+msgstr "Teacsa"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"Tha fòrmat mì-dhligheach aig an luach “%(value)s”. Feumaidh e bhith san "
+"fhòrmat HH:MM[:dd[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"Tha fòrmat mar bu chòir (HH:MM[:dd[.uuuuuu]]) aig an luach “%(value)s” ach "
+"tha an t-àm mì-dligheach."
+
+msgid "Time"
+msgstr "Àm"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Dàta bìnearaidh amh"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "Chan eil “%(value)s” ’na UUID dligheach."
+
+msgid "Universally unique identifier"
+msgstr "Aithnichear àraidh gu h-uile-choitcheann"
+
+msgid "File"
+msgstr "Faidhle"
+
+msgid "Image"
+msgstr "Dealbh"
+
+msgid "A JSON object"
+msgstr "Oibseact JSON"
+
+msgid "Value must be valid JSON."
+msgstr "Feumaidh an luach a bhith ’na JSON dligheach."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr "Chan eil ionstans dhe %(model)s le %(field)s %(value)r ann."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Iuchair chèin (thèid a sheòrsa a mhìneachadh leis an raon dàimheach)"
+
+msgid "One-to-one relationship"
+msgstr "Dàimh aonan gu aonan"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Dàimh %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Dàimhean %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Dàimh iomadh rud gu iomadh rud"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Tha an raon seo riatanach."
+
+msgid "Enter a whole number."
+msgstr "Cuir a-steach àireamh shlàn."
+
+msgid "Enter a valid date."
+msgstr "Cuir a-steach ceann-là dligheach."
+
+msgid "Enter a valid time."
+msgstr "Cuir a-steach àm dligheach."
+
+msgid "Enter a valid date/time."
+msgstr "Cuir a-steach ceann-là ’s àm dligheach."
+
+msgid "Enter a valid duration."
+msgstr "Cuir a-steach faid dhligheach."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr ""
+"Feumaidh an àireamh de làithean a bhith eadar {min_days} is {max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr ""
+"Cha deach faidhle a chur a-null. Dearbhaich seòrsa a’ chòdachaidh air an "
+"fhoirm."
+
+msgid "No file was submitted."
+msgstr "Cha deach faidhle a chur a-null."
+
+msgid "The submitted file is empty."
+msgstr "Tha am faidhle a chaidh a chur a-null falamh."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Dèan cinnteach nach eil barrachd air %(max)d charactar ann an ainm an "
+"fhaidhle (tha %(length)d aige)."
+msgstr[1] ""
+"Dèan cinnteach nach eil barrachd air %(max)d charactar ann an ainm an "
+"fhaidhle (tha %(length)d aige)."
+msgstr[2] ""
+"Dèan cinnteach nach eil barrachd air %(max)d caractaran ann an ainm an "
+"fhaidhle (tha %(length)d aige)."
+msgstr[3] ""
+"Dèan cinnteach nach eil barrachd air %(max)d caractar ann an ainm an "
+"fhaidhle (tha %(length)d aige)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Cuir a-null faidhle no cuir cromag sa bhogsa fhalamh, na dèan an dà chuidh "
+"dhiubh."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr ""
+"Luchdaich suas dealbh dligheach. Cha robh am faidhle a luchdaich thu suas "
+"’na dhealbh no bha an dealbh coirbte."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "Tagh rud dligheach. Chan eil %(value)s ’na roghainn dhut."
+
+msgid "Enter a list of values."
+msgstr "Cuir a-steach liosta de luachan."
+
+msgid "Enter a complete value."
+msgstr "Cuir a-steach luach slàn."
+
+msgid "Enter a valid UUID."
+msgstr "Cuir a-steach UUID dligheach."
+
+msgid "Enter a valid JSON."
+msgstr "Cuir a-steach JSON dligheach."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Raon falaichte %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Tha dàta an fhoirm stiùiridh a dhìth no chaidh beantainn ris. Seo na "
+"raointean a tha a dhìth: %(field_names)s. Ma mhaireas an duilgheadas, saoil "
+"an cuir thu aithris air buga thugainn?"
+
+#, python-format
+msgid "Please submit at most %d form."
+msgid_plural "Please submit at most %d forms."
+msgstr[0] "Na cuir a-null barrachd air %d fhoirm."
+msgstr[1] "Na cuir a-null barrachd air %d fhoirm."
+msgstr[2] "Na cuir a-null barrachd air %d foirmean."
+msgstr[3] "Na cuir a-null barrachd air %d foirm."
+
+#, python-format
+msgid "Please submit at least %d form."
+msgid_plural "Please submit at least %d forms."
+msgstr[0] "Cuir a-null %d fhoirm air a char as lugha."
+msgstr[1] "Cuir a-null %d fhoirm air a char as lugha."
+msgstr[2] "Cuir a-null %d foirmichean air a char as lugha."
+msgstr[3] "Cuir a-null %d foirm air a char as lugha."
+
+msgid "Order"
+msgstr "Òrdugh"
+
+msgid "Delete"
+msgstr "Sguab às"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Ceartaich an dàta dùblaichte airson %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr ""
+"Ceartaich an dàta dùblaichte airson %(field)s, chan fhaod gach nì a bhith "
+"ann ach aon turas."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Ceartaich an dàta dùblaichte airson %(field_name)s nach fhaod a bhith ann "
+"ach aon turas airson %(lookup)s ann an %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Ceartaich na luachan dùblaichte gu h-ìosal."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+"Chan eil an luach am broinn na loidhne a’ freagairt ris an ionstans-pàraint."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "Tagh rud dligheach. Chan eil an rud seo ’na roghainn dhut."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "Chan e luach dligheach a tha ann an “%(pk)s”."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"Cha chiall dha %(datetime)s san roinn-tìde %(current_timezone)s; dh’fhaoidte "
+"gu bheil e dà-sheaghach no nach eil e ann."
+
+msgid "Clear"
+msgstr "Falamhaich"
+
+msgid "Currently"
+msgstr "An-dràsta"
+
+msgid "Change"
+msgstr "Atharraich"
+
+msgid "Unknown"
+msgstr "Chan eil fhios"
+
+msgid "Yes"
+msgstr "Tha"
+
+msgid "No"
+msgstr "Chan eil"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "yes,no,maybe"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d baidht"
+msgstr[1] "%(size)d baidht"
+msgstr[2] "%(size)d baidht"
+msgstr[3] "%(size)d baidht"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "f"
+
+msgid "a.m."
+msgstr "m"
+
+msgid "PM"
+msgstr "f"
+
+msgid "AM"
+msgstr "m"
+
+msgid "midnight"
+msgstr "meadhan-oidhche"
+
+msgid "noon"
+msgstr "meadhan-latha"
+
+msgid "Monday"
+msgstr "DiLuain"
+
+msgid "Tuesday"
+msgstr "DiMàirt"
+
+msgid "Wednesday"
+msgstr "DiCiadain"
+
+msgid "Thursday"
+msgstr "DiarDaoin"
+
+msgid "Friday"
+msgstr "DihAoine"
+
+msgid "Saturday"
+msgstr "DiSathairne"
+
+msgid "Sunday"
+msgstr "DiDòmhnaich"
+
+msgid "Mon"
+msgstr "DiL"
+
+msgid "Tue"
+msgstr "DiM"
+
+msgid "Wed"
+msgstr "DiC"
+
+msgid "Thu"
+msgstr "Dia"
+
+msgid "Fri"
+msgstr "Dih"
+
+msgid "Sat"
+msgstr "DiS"
+
+msgid "Sun"
+msgstr "DiD"
+
+msgid "January"
+msgstr "Am Faoilleach"
+
+msgid "February"
+msgstr "An Gearran"
+
+msgid "March"
+msgstr "Am Màrt"
+
+msgid "April"
+msgstr "An Giblean"
+
+msgid "May"
+msgstr "An Cèitean"
+
+msgid "June"
+msgstr "An t-Ògmhios"
+
+msgid "July"
+msgstr "An t-Iuchar"
+
+msgid "August"
+msgstr "An Lùnastal"
+
+msgid "September"
+msgstr "An t-Sultain"
+
+msgid "October"
+msgstr "An Dàmhair"
+
+msgid "November"
+msgstr "An t-Samhain"
+
+msgid "December"
+msgstr "An Dùbhlachd"
+
+msgid "jan"
+msgstr "faoi"
+
+msgid "feb"
+msgstr "gearr"
+
+msgid "mar"
+msgstr "màrt"
+
+msgid "apr"
+msgstr "gibl"
+
+msgid "may"
+msgstr "cèit"
+
+msgid "jun"
+msgstr "ògmh"
+
+msgid "jul"
+msgstr "iuch"
+
+msgid "aug"
+msgstr "lùna"
+
+msgid "sep"
+msgstr "sult"
+
+msgid "oct"
+msgstr "dàmh"
+
+msgid "nov"
+msgstr "samh"
+
+msgid "dec"
+msgstr "dùbh"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Faoi"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Gearr"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Màrt"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Gibl"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Cèit"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Ògmh"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Iuch"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Lùna"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Sult"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Dàmh"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Samh"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dùbh"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Am Faoilleach"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "An Gearran"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Am Màrt"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "An Giblean"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "An Cèitean"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "An t-Ògmhios"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "An t-Iuchar"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "An Lùnastal"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "An t-Sultain"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "An Dàmhair"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "An t-Samhain"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "An Dùbhlachd"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Chan eil seo ’na sheòladh IPv6 dligheach."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "no"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d bliadhna"
+msgstr[1] "%(num)d bhliadhna"
+msgstr[2] "%(num)d bliadhnaichean"
+msgstr[3] "%(num)d bliadhna"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mhìos"
+msgstr[1] "%(num)d mhìos"
+msgstr[2] "%(num)d mìosan"
+msgstr[3] "%(num)d mìos"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d seachdain"
+msgstr[1] "%(num)d sheachdain"
+msgstr[2] "%(num)d seachdainean"
+msgstr[3] "%(num)d seachdain"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d latha"
+msgstr[1] "%(num)d latha"
+msgstr[2] "%(num)d làithean"
+msgstr[3] "%(num)d latha"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d uair a thìde"
+msgstr[1] "%(num)d uair a thìde"
+msgstr[2] "%(num)d uairean a thìde"
+msgstr[3] "%(num)d uair a thìde"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d mhionaid"
+msgstr[1] "%(num)d mhionaid"
+msgstr[2] "%(num)d mionaidean"
+msgstr[3] "%(num)d mionaid"
+
+msgid "Forbidden"
+msgstr "Toirmisgte"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Dh’fhàillig le dearbhadh CSRF. chaidh sgur dhen iarrtas."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Chì thu an teachdaireachd seo air sgàth ’s gu bheil an làrach-lìn HTTPS seo "
+"ag iarraidh air a’ bhrabhsair-lìn agad gun cuir e bann-cinn “Referer” thuice "
+"ach cha deach gin a chur a-null. Tha feum air a’ bhann-chinn seo a chum "
+"tèarainteachd ach nach cleachd treas-phàrtaidh am brabhsair agad gu droch-"
+"rùnach."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Ma rèitich thu am brabhsair agad ach an cuir e bannan-cinn “Referer” à "
+"comas, cuir an comas iad a-rithist, co-dhiù airson na làraich seo no airson "
+"ceanglaichean HTTPS no airson iarrtasan “same-origin”."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Ma tha thu a’ cleachdadh taga no a’ gabhail a-staigh bann-cinn “'Referrer-Policy: no-referrer” feuch "
+"an doir thu air falbh iad. Iarraidh an dìon CSRF bann-cinn “Referer” gus na "
+"referers a dhearbhadh gu teann. Ma tha thu iomagaineach a thaobh do "
+"prìobhaideachd, cleachd roghainnean eile mar airson "
+"ceangal gu làraichean-lìn threas-phàrtaidhean."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Chì thu an teachdaireachd seo air sgàth ’s gu bheil an làrach-lìn seo ag "
+"iarraidh briosgaid CSRF nuair a chuireas tu foirm a-null. Tha feum air a’ "
+"bhriosgaid seo a chum tèarainteachd ach nach cleachd treas-phàrtaidh am "
+"brabhsair agad gu droch-rùnach."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Ma rèitich thu am brabhsair agad ach an cuir e briosgaidean à comas, cuir an "
+"comas iad a-rithist, co-dhiù airson na làraich seo no airson iarrtasan “same-"
+"origin”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Gheibh thu barrachd fiosrachaidh le DEBUG=True."
+
+msgid "No year specified"
+msgstr "Cha deach bliadhna a shònrachadh"
+
+msgid "Date out of range"
+msgstr "Tha ceann-là taobh thar na rainse"
+
+msgid "No month specified"
+msgstr "Cha deach mìos a shònrachadh"
+
+msgid "No day specified"
+msgstr "Cha deach latha a shònrachadh"
+
+msgid "No week specified"
+msgstr "Cha deach seachdain a shònrachadh"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Chan eil %(verbose_name_plural)s ri fhaighinn"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Chan eil %(verbose_name_plural)s san àm ri teachd ri fhaighinn air sgàth ’s "
+"gun deach %(class_name)s.allow_future a shuidheachadh air False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr ""
+"Sreang cinn-là “%(datestr)s” mì-dhligheach airson an fhòrmait “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Cha deach %(verbose_name)s a lorg a fhreagras dhan cheist"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr ""
+"Chan eil an duilleag ’na “last” is cha ghabh a h-iompachadh gu àireamh shlàn."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Duilleag mhì-dhligheach (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr ""
+"Tha liosta fhalamh ann agus chaidh “%(class_name)s.allow_empty” a "
+"shuidheachadh air False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Chan eil clàran-amais pasgain falamh ceadaichte an-seo."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "Chan eil “%(path)s” ann"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Clàr-amais dhe %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "Chaidh a stàladh! Meal do naidheachd!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Seall na nòtaichean sgaoilidh airson Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not configured any "
+"URLs."
+msgstr ""
+"Chì thu an duilleag seo on a tha DEBUG=True ann am faidhle nan roghainnean agad agus cha do rèitich "
+"thu URL sam bith fhathast."
+
+msgid "Django Documentation"
+msgstr "Docamaideadh Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Cuspairean, iomraidhean ⁊ treòraichean"
+
+msgid "Tutorial: A Polling App"
+msgstr "Oideachadh: Aplacaid cunntais-bheachd"
+
+msgid "Get started with Django"
+msgstr "Dèan toiseach-tòiseachaidh le Django"
+
+msgid "Django Community"
+msgstr "Coimhearsnachd Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Dèan ceangal, faigh taic no cuidich"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..b0747f7d
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..247b675a
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/formats.py
new file mode 100644
index 00000000..5ef67744
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gd/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j F Y"
+TIME_FORMAT = "h:ia"
+DATETIME_FORMAT = "j F Y h:ia"
+# YEAR_MONTH_FORMAT =
+MONTH_DAY_FORMAT = "j F"
+SHORT_DATE_FORMAT = "j M Y"
+SHORT_DATETIME_FORMAT = "j M Y h:ia"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..d2e64200
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po
new file mode 100644
index 00000000..b1e5f337
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/LC_MESSAGES/django.po
@@ -0,0 +1,1356 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# fasouto , 2011-2012
+# fonso , 2011,2013
+# fonso , 2013
+# fasouto , 2017
+# Jannis Leidel , 2011
+# Leandro Regueiro , 2013
+# 948a55bc37dd6d642f1875bb84258fff_07a28cc , 2012
+# X Bello , 2023-2025
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-09-17 06:49+0000\n"
+"Last-Translator: X Bello , 2023-2025\n"
+"Language-Team: Galician (http://app.transifex.com/django/django/language/"
+"gl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: gl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "Africáner"
+
+msgid "Arabic"
+msgstr "Árabe"
+
+msgid "Algerian Arabic"
+msgstr "Árabe Arxelino"
+
+msgid "Asturian"
+msgstr "Asturiano"
+
+msgid "Azerbaijani"
+msgstr "Azerí"
+
+msgid "Bulgarian"
+msgstr "Búlgaro"
+
+msgid "Belarusian"
+msgstr "Bielorruso"
+
+msgid "Bengali"
+msgstr "Bengalí"
+
+msgid "Breton"
+msgstr "Bretón"
+
+msgid "Bosnian"
+msgstr "Bosníaco"
+
+msgid "Catalan"
+msgstr "Catalán"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "Kurdo Central (Sorani)"
+
+msgid "Czech"
+msgstr "Checo"
+
+msgid "Welsh"
+msgstr "Galés"
+
+msgid "Danish"
+msgstr "Dinamarqués"
+
+msgid "German"
+msgstr "Alemán"
+
+msgid "Lower Sorbian"
+msgstr "Baixo Sorabo"
+
+msgid "Greek"
+msgstr "Grego"
+
+msgid "English"
+msgstr "Inglés"
+
+msgid "Australian English"
+msgstr "Inglés australiano"
+
+msgid "British English"
+msgstr "inglés británico"
+
+msgid "Esperanto"
+msgstr "Esperanto"
+
+msgid "Spanish"
+msgstr "Español"
+
+msgid "Argentinian Spanish"
+msgstr "Español da Arxentina"
+
+msgid "Colombian Spanish"
+msgstr "Español de Colombia"
+
+msgid "Mexican Spanish"
+msgstr "Español de México"
+
+msgid "Nicaraguan Spanish"
+msgstr "Español de Nicaragua"
+
+msgid "Venezuelan Spanish"
+msgstr "Español de Venezuela"
+
+msgid "Estonian"
+msgstr "Estoniano"
+
+msgid "Basque"
+msgstr "Vasco"
+
+msgid "Persian"
+msgstr "Persa"
+
+msgid "Finnish"
+msgstr "Finés"
+
+msgid "French"
+msgstr "Francés"
+
+msgid "Frisian"
+msgstr "Frisón"
+
+msgid "Irish"
+msgstr "Irlandés"
+
+msgid "Scottish Gaelic"
+msgstr "Gaélico Escocés"
+
+msgid "Galician"
+msgstr "Galego"
+
+msgid "Hebrew"
+msgstr "Hebreo"
+
+msgid "Hindi"
+msgstr "Hindi"
+
+msgid "Croatian"
+msgstr "Croata"
+
+msgid "Upper Sorbian"
+msgstr "Alto Sorabo"
+
+msgid "Hungarian"
+msgstr "Húngaro"
+
+msgid "Armenian"
+msgstr "Armenio"
+
+msgid "Interlingua"
+msgstr "Interlingua"
+
+msgid "Indonesian"
+msgstr "Indonesio"
+
+msgid "Igbo"
+msgstr "Ibo"
+
+msgid "Ido"
+msgstr "Ido"
+
+msgid "Icelandic"
+msgstr "Islandés"
+
+msgid "Italian"
+msgstr "Italiano"
+
+msgid "Japanese"
+msgstr "Xaponés"
+
+msgid "Georgian"
+msgstr "Xeorxiano"
+
+msgid "Kabyle"
+msgstr "Cabilio"
+
+msgid "Kazakh"
+msgstr "Casaco"
+
+msgid "Khmer"
+msgstr "Camboxano"
+
+msgid "Kannada"
+msgstr "Canará"
+
+msgid "Korean"
+msgstr "Coreano"
+
+msgid "Kyrgyz"
+msgstr "Kirguiz"
+
+msgid "Luxembourgish"
+msgstr "Luxemburgués"
+
+msgid "Lithuanian"
+msgstr "Lituano"
+
+msgid "Latvian"
+msgstr "Letón"
+
+msgid "Macedonian"
+msgstr "Macedonio"
+
+msgid "Malayalam"
+msgstr "Mala"
+
+msgid "Mongolian"
+msgstr "Mongol"
+
+msgid "Marathi"
+msgstr "Marathi"
+
+msgid "Malay"
+msgstr "Malaio"
+
+msgid "Burmese"
+msgstr "Birmano"
+
+msgid "Norwegian Bokmål"
+msgstr "Bokmål Noruegués"
+
+msgid "Nepali"
+msgstr "Nepalés"
+
+msgid "Dutch"
+msgstr "Holandés"
+
+msgid "Norwegian Nynorsk"
+msgstr "Noruegués (nynorsk)"
+
+msgid "Ossetic"
+msgstr "Osetio"
+
+msgid "Punjabi"
+msgstr "Panxabiano"
+
+msgid "Polish"
+msgstr "Polaco"
+
+msgid "Portuguese"
+msgstr "Portugués"
+
+msgid "Brazilian Portuguese"
+msgstr "Portugués do Brasil"
+
+msgid "Romanian"
+msgstr "Romanés"
+
+msgid "Russian"
+msgstr "Ruso"
+
+msgid "Slovak"
+msgstr "Eslovaco"
+
+msgid "Slovenian"
+msgstr "Esloveno"
+
+msgid "Albanian"
+msgstr "Albanés"
+
+msgid "Serbian"
+msgstr "Serbio"
+
+msgid "Serbian Latin"
+msgstr "Serbio (alfabeto latino)"
+
+msgid "Swedish"
+msgstr "Sueco"
+
+msgid "Swahili"
+msgstr "Suahili"
+
+msgid "Tamil"
+msgstr "Támil"
+
+msgid "Telugu"
+msgstr "Telugu"
+
+msgid "Tajik"
+msgstr "Taxico"
+
+msgid "Thai"
+msgstr "Tai"
+
+msgid "Turkmen"
+msgstr "Turcomá"
+
+msgid "Turkish"
+msgstr "Turco"
+
+msgid "Tatar"
+msgstr "Tártaro"
+
+msgid "Udmurt"
+msgstr "Udmurt"
+
+msgid "Uyghur"
+msgstr "Uigur"
+
+msgid "Ukrainian"
+msgstr "Ucraíno"
+
+msgid "Urdu"
+msgstr "Urdu"
+
+msgid "Uzbek"
+msgstr "Uzbeco"
+
+msgid "Vietnamese"
+msgstr "Vietnamita"
+
+msgid "Simplified Chinese"
+msgstr "Chinés simplificado"
+
+msgid "Traditional Chinese"
+msgstr "Chinés tradicional"
+
+msgid "Messages"
+msgstr "Mensaxes"
+
+msgid "Site Maps"
+msgstr "Mapas do sitio"
+
+msgid "Static Files"
+msgstr "Arquivos Estáticos"
+
+msgid "Syndication"
+msgstr "Sindicación"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "…"
+
+msgid "That page number is not an integer"
+msgstr "Ese número de páxina non é un enteiro"
+
+msgid "That page number is less than 1"
+msgstr "Ese número de páxina é menor que 1"
+
+msgid "That page contains no results"
+msgstr "Esa páxina non contén resultados"
+
+msgid "Enter a valid value."
+msgstr "Insira un valor válido."
+
+msgid "Enter a valid domain name."
+msgstr "Introduza un nome de dominio válido."
+
+msgid "Enter a valid URL."
+msgstr "Insira un URL válido."
+
+msgid "Enter a valid integer."
+msgstr "Introduza un enteiro válido."
+
+msgid "Enter a valid email address."
+msgstr "Insira un enderezo de correo electrónico válido."
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"Insira un “slug” valido composto por letras, números, guións baixos ou "
+"medios."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"Insira un “slug” valido composto por letras Unicode, números, guións baixos "
+"ou medios."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "Introduza unha dirección %(protocol)s válida."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 ou IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "Insira só díxitos separados por comas."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"Asegúrese de que este valor é %(limit_value)s (agora é %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "Asegure que este valor é menor ou igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "Asegure que este valor é maior ou igual a %(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+"Asegúrese de que este valor é un múltiplo do tamaño do paso %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"Asegúrese de que este valor é un múltiplo do tamaño do paso %(limit_value)s, "
+"comezando por %(offset)s, p. ex. %(offset)s, %(valid_value1)s, "
+"%(valid_value2)s, e sucesivos."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor ten polo menos %(limit_value)d caracter (agora "
+"ten %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor ten polo menos %(limit_value)d caracteres (agora "
+"ten %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"Asegúrese de que este valor ten como moito %(limit_value)d caracter (agora "
+"ten %(show_value)d)."
+msgstr[1] ""
+"Asegúrese de que este valor ten como moito %(limit_value)d caracteres (agora "
+"ten %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "Insira un número."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "Asegure que non hai mais de %(max)s díxito en total."
+msgstr[1] "Asegure que non hai mais de %(max)s díxitos en total."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "Asegúrese de que non hai máis de %(max)s lugar decimal."
+msgstr[1] "Asegúrese de que non hai máis de %(max)s lugares decimais."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+"Asegúrese de que no hai máis de %(max)s díxito antes do punto decimal."
+msgstr[1] ""
+"Asegúrese de que non hai máis de %(max)s díxitos antes do punto decimal."
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"Non se permite a extensión “%(extension)s”. As extensións permitidas son: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "Non se permiten caracteres nulos."
+
+msgid "and"
+msgstr "e"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "Xa existe un %(model_name)s con este %(field_labels)s."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "Viólase a restricción “%(name)s”."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "O valor %(value)r non é unha opción válida."
+
+msgid "This field cannot be null."
+msgstr "Este campo non pode ser nulo."
+
+msgid "This field cannot be blank."
+msgstr "Este campo non pode estar baleiro."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr ""
+"Xa existe un modelo %(model_name)s coa etiqueta de campo %(field_label)s."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s ten que ser único para %(lookup_type)s en "
+"%(date_field_label)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "Campo de tipo: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "O valor “%(value)s” ten que ser ou True ou False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "O valor “%(value)s” ten que ser True, False ou None."
+
+msgid "Boolean (Either True or False)"
+msgstr "Valor booleano (verdadeiro ou falso)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "Cadea (máximo %(max_length)s)"
+
+msgid "String (unlimited)"
+msgstr "Texto (sin límite)"
+
+msgid "Comma-separated integers"
+msgstr "Números enteiros separados por comas"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"O valor “%(value)s” ten un formato inválido de data. Debe estar no formato "
+"AAAA-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+"O valor “%(value)s” ten o formato correcto (AAAA-MM-DD) pero non é unha data "
+"válida."
+
+msgid "Date (without time)"
+msgstr "Data (sen a hora)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"O valor “%(value)s” ten un formato non válido. Debe de ter o formato AAAA-MM-"
+"DD HH:MM[:ss[.uuuuuu]][TZ]. "
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"O valor “%(value)s” ten o formato correcto (AAAA-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) pero non é unha data/hora válida."
+
+msgid "Date (with time)"
+msgstr "Data (coa hora)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "“%(value)s” ten que ser un número en formato decimal."
+
+msgid "Decimal number"
+msgstr "Número decimal"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"O valor “%(value)s” ten un formato non válido. Debe de ter o formato [DD] "
+"[[HH:]MM:]ss[.uuuuuu]. "
+
+msgid "Duration"
+msgstr "Duración"
+
+msgid "Email address"
+msgstr "Enderezo electrónico"
+
+msgid "File path"
+msgstr "Ruta de ficheiro"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "O valor “%(value)s” ten que ser un número en coma flotante."
+
+msgid "Floating point number"
+msgstr "Número en coma flotante"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "O valor “%(value)s” ten que ser un número enteiro."
+
+msgid "Integer"
+msgstr "Número enteiro"
+
+msgid "Big (8 byte) integer"
+msgstr "Enteiro grande (8 bytes)"
+
+msgid "Small integer"
+msgstr "Enteiro pequeno"
+
+msgid "IPv4 address"
+msgstr "Enderezo IPv4"
+
+msgid "IP address"
+msgstr "Enderezo IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "O valor “%(value)s” ten que ser None, True ou False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "Booleano (verdadeiro, falso ou ningún)"
+
+msgid "Positive big integer"
+msgstr "Número enteiro positivo grande"
+
+msgid "Positive integer"
+msgstr "Numero enteiro positivo"
+
+msgid "Positive small integer"
+msgstr "Enteiro pequeno positivo"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (ata %(max_length)s)"
+
+msgid "Text"
+msgstr "Texto"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"O valor “%(value)s” ten un formato non válido. Ten que ter o formato HH:MM[:"
+"ss[.uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"O valor “%(value)s” ten o formato correcto (HH:MM[:ss[.uuuuuu]]) pero non é "
+"unha hora válida."
+
+msgid "Time"
+msgstr "Hora"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "Datos binarios en crú"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "“%(value)s” non é un UUID válido."
+
+msgid "Universally unique identifier"
+msgstr "Identificador único universal"
+
+msgid "File"
+msgstr "Ficheiro"
+
+msgid "Image"
+msgstr "Imaxe"
+
+msgid "A JSON object"
+msgstr "Un obxeto JSON"
+
+msgid "Value must be valid JSON."
+msgstr "O valor ten que ser JSON válido."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr "%(model)s instancia con %(field)s %(value)r non é unha opción válida."
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Clave Foránea (tipo determinado por un campo relacionado)"
+
+msgid "One-to-one relationship"
+msgstr "Relación un a un"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "Relación %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "Relacións %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "Relación moitos a moitos"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "Requírese este campo."
+
+msgid "Enter a whole number."
+msgstr "Insira un número enteiro."
+
+msgid "Enter a valid date."
+msgstr "Insira unha data válida."
+
+msgid "Enter a valid time."
+msgstr "Insira unha hora válida."
+
+msgid "Enter a valid date/time."
+msgstr "Insira unha data/hora válida."
+
+msgid "Enter a valid duration."
+msgstr "Introduza unha duración válida."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "O número de días ten que estar entre {min_days} e {max_days}."
+
+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."
+
+msgid "No file was submitted."
+msgstr "Non se enviou ficheiro ningún."
+
+msgid "The submitted file is empty."
+msgstr "O ficheiro enviado está baleiro."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+"Asegúrese de que este nome de arquivo ten como moito %(max)d caracter (agora "
+"ten %(length)d)."
+msgstr[1] ""
+"Asegúrese de que este nome de arquivo ten como moito %(max)d caracteres "
+"(agora ten %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr ""
+"Ou ben envíe un ficheiro, ou ben marque a casilla de eliminar, pero non "
+"ambas as dúas cousas."
+
+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."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr ""
+"Escolla unha opción válida. %(value)s non se atopa entre as opcións "
+"dispoñibles."
+
+msgid "Enter a list of values."
+msgstr "Insira unha lista de valores."
+
+msgid "Enter a complete value."
+msgstr "Introduza un valor completo."
+
+msgid "Enter a valid UUID."
+msgstr "Insira un UUID válido."
+
+msgid "Enter a valid JSON."
+msgstr "Introduza un JSON válido."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(Campo oculto %(name)s) %(error)s."
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"Faltan datos ou foron manipulados de ManagementForm. Campos afectados: "
+"%(field_names)s. Debería abrir un informe de bug si o problema é persistente."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "Por favor envíe como moito %(num)d formulario."
+msgstr[1] "Por favor envíe como moito %(num)d formularios."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "Por favor envíe polo menos %(num)d formulario."
+msgstr[1] "Pro favor envíe polo menos %(num)d formularios."
+
+msgid "Order"
+msgstr "Orde"
+
+msgid "Delete"
+msgstr "Eliminar"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "Corrixa os datos duplicados no campo %(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "Corrixa os datos duplicados no campo %(field)s, que debe ser único."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"Corrixa os datos duplicados no campo %(field_name)s, que debe ser único para "
+"a busca %(lookup)s no campo %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "Corrixa os valores duplicados de abaixo."
+
+msgid "The inline value did not match the parent instance."
+msgstr "O valor na liña non coincide ca instancia nai."
+
+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"
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "“%(pk)s” non é un valor válido."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"%(datetime)s non se puido interpretar na zona hora horaria "
+"%(current_timezone)s; pode ser ambiguo ou non existir."
+
+msgid "Clear"
+msgstr "Limpar"
+
+msgid "Currently"
+msgstr "Actualmente"
+
+msgid "Change"
+msgstr "Modificar"
+
+msgid "Unknown"
+msgstr "Descoñecido"
+
+msgid "Yes"
+msgstr "Si"
+
+msgid "No"
+msgstr "Non"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "si,non,quizais"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d byte"
+msgstr[1] "%(size)d bytes"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s KB"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s MB"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s GB"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s TB"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s PB"
+
+msgid "p.m."
+msgstr "p.m."
+
+msgid "a.m."
+msgstr "a.m."
+
+msgid "PM"
+msgstr "PM"
+
+msgid "AM"
+msgstr "AM"
+
+msgid "midnight"
+msgstr "medianoite"
+
+msgid "noon"
+msgstr "mediodía"
+
+msgid "Monday"
+msgstr "Luns"
+
+msgid "Tuesday"
+msgstr "Martes"
+
+msgid "Wednesday"
+msgstr "Mércores"
+
+msgid "Thursday"
+msgstr "Xoves"
+
+msgid "Friday"
+msgstr "Venres"
+
+msgid "Saturday"
+msgstr "Sábado"
+
+msgid "Sunday"
+msgstr "Domingo"
+
+msgid "Mon"
+msgstr "lun"
+
+msgid "Tue"
+msgstr "mar"
+
+msgid "Wed"
+msgstr "mér"
+
+msgid "Thu"
+msgstr "xov"
+
+msgid "Fri"
+msgstr "ven"
+
+msgid "Sat"
+msgstr "sáb"
+
+msgid "Sun"
+msgstr "dom"
+
+msgid "January"
+msgstr "Xaneiro"
+
+msgid "February"
+msgstr "Febreiro"
+
+msgid "March"
+msgstr "Marzo"
+
+msgid "April"
+msgstr "Abril"
+
+msgid "May"
+msgstr "Maio"
+
+msgid "June"
+msgstr "Xuño"
+
+msgid "July"
+msgstr "Xullo"
+
+msgid "August"
+msgstr "Agosto"
+
+msgid "September"
+msgstr "Setembro"
+
+msgid "October"
+msgstr "Outubro"
+
+msgid "November"
+msgstr "Novembro"
+
+msgid "December"
+msgstr "Decembro"
+
+msgid "jan"
+msgstr "xan"
+
+msgid "feb"
+msgstr "feb"
+
+msgid "mar"
+msgstr "mar"
+
+msgid "apr"
+msgstr "abr"
+
+msgid "may"
+msgstr "mai"
+
+msgid "jun"
+msgstr "xuñ"
+
+msgid "jul"
+msgstr "xul"
+
+msgid "aug"
+msgstr "ago"
+
+msgid "sep"
+msgstr "set"
+
+msgid "oct"
+msgstr "out"
+
+msgid "nov"
+msgstr "nov"
+
+msgid "dec"
+msgstr "dec"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "Xan."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "Feb."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "Maio"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "Xuño"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "Xullo"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "Ago."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "Set."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "Out."
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "Nov."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "Dec."
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "Xaneiro"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "Febreiro"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "Marzo"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "Abril"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "Maio"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "Xuño"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "Xullo"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "Agosto"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "Setembro"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "Outubro"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "Novembro"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "Decembro"
+
+msgid "This is not a valid IPv6 address."
+msgstr "Isto non é un enderezo IPv6 válido."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "ou"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "%(num)d ano"
+msgstr[1] "%(num)d anos"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "%(num)d mes"
+msgstr[1] "%(num)d meses"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "%(num)d semana"
+msgstr[1] "%(num)d semanas"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "%(num)d día"
+msgstr[1] "%(num)d días"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "%(num)d hora"
+msgstr[1] "%(num)d horas"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "%(num)d minuto"
+msgstr[1] "%(num)d minutos"
+
+msgid "Forbidden"
+msgstr "Denegado"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "Fallóu a verificación CSRF. Abortouse a petición."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"Está vendo esta mensaxe porque este sitio HTTPS require que o navegador "
+"envíe un \"Referer header\", pero non envióu ningún. Este encabezamento é "
+"necesario por razóns de seguridade, para asegurar que o navegador non está "
+"sendo suplantado por terceiros."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"Se ten o navegador configurado para deshabilitar os encabezamentos "
+"\"Referer\", por favor habilíteos polo menos para este sitio, ou para "
+"conexións HTTPS, ou para peticións de \"mesmo-orixe\"."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"Si está usando a etiqueta "
+"ou incluíndo o encabezado “Referrer-Policy: no-referrer”, por favor quíteos. "
+"A protección CSRF require o encabezado “Referer” para facer a comprobación "
+"estricta de referer. Si lle preocupa a privacidade, use alternativas como para enlazar con sitios de terceiros."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"Está vendo esta mensaxe porque este sitio HTTPS require unha cookie CSRF ó "
+"enviar formularios. Esta cookie é necesaria por razóns de seguridade, para "
+"asegurar que o navegador non está sendo suplantado por terceiros."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"Se ten o navegador configurado para deshabilitar as cookies, por favor "
+"habilíteas, polo menos para este sitio, ou para peticións de “same-origin”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "Pode ver máis información se establece DEBUG=True."
+
+msgid "No year specified"
+msgstr "Non se especificou ningún ano"
+
+msgid "Date out of range"
+msgstr "Data fora de rango"
+
+msgid "No month specified"
+msgstr "Non se especificou ningún mes"
+
+msgid "No day specified"
+msgstr "Non se especificou ningún día"
+
+msgid "No week specified"
+msgstr "Non se especificou ningunha semana"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "Non hai %(verbose_name_plural)s dispoñibles"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"Non hai dispoñibles %(verbose_name_plural)s futuros/as porque %(class_name)s."
+"allow_futuro é False"
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "A data “%(datestr)s” non é válida para o formato “%(format)s”"
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "Non se atopou ningún/ha %(verbose_name)s que coincidise coa consulta"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "A páxina non é “last” nin se pode converter a int."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "Páxina non válida (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "A lista está baleira pero “%(class_name)s.allow_empty” é False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "Os índices de directorio non están permitidos aquí."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "“%(path)s” non existe"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "Índice de %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "A instalación foi un éxito! Noraboa!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"Ver as notas de publicación para Django "
+"%(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"Está vendo esta páxina porque no arquivo de axustes ten DEBUG=True e non hai ningunha URL "
+"configurada."
+
+msgid "Django Documentation"
+msgstr "Documentación de Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "Temas, referencias, & guías de uso"
+
+msgid "Tutorial: A Polling App"
+msgstr "Tutorial: aplicación de enquisas"
+
+msgid "Get started with Django"
+msgstr "Comenzar con Django"
+
+msgid "Django Community"
+msgstr "Comunidade de Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "Conectar, conseguir axuda, ou contribuir"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..8b407cfb
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..1213e901
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/formats.py
new file mode 100644
index 00000000..73729355
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/gl/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = r"j \d\e F \d\e Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = r"j \d\e F \d\e Y \á\s H:i"
+YEAR_MONTH_FORMAT = r"F \d\e Y"
+MONTH_DAY_FORMAT = r"j \d\e F"
+SHORT_DATE_FORMAT = "d-m-Y"
+SHORT_DATETIME_FORMAT = "d-m-Y, H:i"
+FIRST_DAY_OF_WEEK = 1 # Monday
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = ","
+THOUSAND_SEPARATOR = "."
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..4d739212
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.po
new file mode 100644
index 00000000..330c5137
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/LC_MESSAGES/django.po
@@ -0,0 +1,1340 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# 534b44a19bf18d20b71ecc4eb77c572f_db336e9 , 2011-2012
+# Jannis Leidel , 2011
+# Meir Kriheli , 2011-2015,2017,2019-2020,2023,2025
+# Menachem G., 2021
+# Menachem G., 2021
+# אורי רודברג , 2021
+# Yaron Shahrabani , 2021
+# אורי רודברג , 2020,2022-2023
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2025-03-19 11:30-0500\n"
+"PO-Revision-Date: 2025-04-01 15:04-0500\n"
+"Last-Translator: Meir Kriheli , "
+"2011-2015,2017,2019-2020,2023,2025\n"
+"Language-Team: Hebrew (http://app.transifex.com/django/django/language/he/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: he\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % "
+"1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
+
+msgid "Afrikaans"
+msgstr "אפריקאנס"
+
+msgid "Arabic"
+msgstr "ערבית"
+
+msgid "Algerian Arabic"
+msgstr "ערבית אלג'ירית"
+
+msgid "Asturian"
+msgstr "אסטורית"
+
+msgid "Azerbaijani"
+msgstr "אזרית"
+
+msgid "Bulgarian"
+msgstr "בולגרית"
+
+msgid "Belarusian"
+msgstr "בֶּלָרוּסִית"
+
+msgid "Bengali"
+msgstr "בנגאלית"
+
+msgid "Breton"
+msgstr "בְּרֶטוֹנִית"
+
+msgid "Bosnian"
+msgstr "בוסנית"
+
+msgid "Catalan"
+msgstr "קאטלונית"
+
+msgid "Central Kurdish (Sorani)"
+msgstr "כורדית מרכזית (סוראני)"
+
+msgid "Czech"
+msgstr "צ'כית"
+
+msgid "Welsh"
+msgstr "וולשית"
+
+msgid "Danish"
+msgstr "דנית"
+
+msgid "German"
+msgstr "גרמנית"
+
+msgid "Lower Sorbian"
+msgstr "סורבית תחתונה"
+
+msgid "Greek"
+msgstr "יוונית"
+
+msgid "English"
+msgstr "אנגלית"
+
+msgid "Australian English"
+msgstr "אנגלית אוסטרלית"
+
+msgid "British English"
+msgstr "אנגלית בריטית"
+
+msgid "Esperanto"
+msgstr "אספרנטו"
+
+msgid "Spanish"
+msgstr "ספרדית"
+
+msgid "Argentinian Spanish"
+msgstr "ספרדית ארגנטינית"
+
+msgid "Colombian Spanish"
+msgstr "ספרדית קולומביאנית"
+
+msgid "Mexican Spanish"
+msgstr "ספרדית מקסיקנית"
+
+msgid "Nicaraguan Spanish"
+msgstr "ספרדית ניקרגואה"
+
+msgid "Venezuelan Spanish"
+msgstr "ספרדית ונצואלית"
+
+msgid "Estonian"
+msgstr "אסטונית"
+
+msgid "Basque"
+msgstr "בסקית"
+
+msgid "Persian"
+msgstr "פרסית"
+
+msgid "Finnish"
+msgstr "פינית"
+
+msgid "French"
+msgstr "צרפתית"
+
+msgid "Frisian"
+msgstr "פריזית"
+
+msgid "Irish"
+msgstr "אירית"
+
+msgid "Scottish Gaelic"
+msgstr "גאלית סקוטית"
+
+msgid "Galician"
+msgstr "גאליציאנית"
+
+msgid "Hebrew"
+msgstr "עברית"
+
+msgid "Hindi"
+msgstr "הינדי"
+
+msgid "Croatian"
+msgstr "קרואטית"
+
+msgid "Upper Sorbian"
+msgstr "סורבית עילית"
+
+msgid "Hungarian"
+msgstr "הונגרית"
+
+msgid "Armenian"
+msgstr "ארמנית"
+
+msgid "Interlingua"
+msgstr "אינטרלינגואה"
+
+msgid "Indonesian"
+msgstr "אינדונזית"
+
+msgid "Igbo"
+msgstr "איגבו"
+
+msgid "Ido"
+msgstr "אידו"
+
+msgid "Icelandic"
+msgstr "איסלנדית"
+
+msgid "Italian"
+msgstr "איטלקית"
+
+msgid "Japanese"
+msgstr "יפנית"
+
+msgid "Georgian"
+msgstr "גיאורגית"
+
+msgid "Kabyle"
+msgstr "קבילה"
+
+msgid "Kazakh"
+msgstr "קזחית"
+
+msgid "Khmer"
+msgstr "חמר"
+
+msgid "Kannada"
+msgstr "קאנאדה"
+
+msgid "Korean"
+msgstr "קוריאנית"
+
+msgid "Kyrgyz"
+msgstr "קירגיזית"
+
+msgid "Luxembourgish"
+msgstr "לוקסמבורגית"
+
+msgid "Lithuanian"
+msgstr "ליטאית"
+
+msgid "Latvian"
+msgstr "לטבית"
+
+msgid "Macedonian"
+msgstr "מקדונית"
+
+msgid "Malayalam"
+msgstr "מלאיאלאם"
+
+msgid "Mongolian"
+msgstr "מונגולי"
+
+msgid "Marathi"
+msgstr "מראטהי"
+
+msgid "Malay"
+msgstr "מלאית"
+
+msgid "Burmese"
+msgstr "בּוּרְמֶזִית"
+
+msgid "Norwegian Bokmål"
+msgstr "נורבגית ספרותית"
+
+msgid "Nepali"
+msgstr "נפאלית"
+
+msgid "Dutch"
+msgstr "הולנדית"
+
+msgid "Norwegian Nynorsk"
+msgstr "נורבגית חדשה"
+
+msgid "Ossetic"
+msgstr "אוסטית"
+
+msgid "Punjabi"
+msgstr "פנג'אבי"
+
+msgid "Polish"
+msgstr "פולנית"
+
+msgid "Portuguese"
+msgstr "פורטוגזית"
+
+msgid "Brazilian Portuguese"
+msgstr "פורטוגזית ברזילאית"
+
+msgid "Romanian"
+msgstr "רומנית"
+
+msgid "Russian"
+msgstr "רוסית"
+
+msgid "Slovak"
+msgstr "סלובקית"
+
+msgid "Slovenian"
+msgstr "סלובנית"
+
+msgid "Albanian"
+msgstr "אלבנית"
+
+msgid "Serbian"
+msgstr "סרבית"
+
+msgid "Serbian Latin"
+msgstr "סרבית לטינית"
+
+msgid "Swedish"
+msgstr "שוודית"
+
+msgid "Swahili"
+msgstr "סווהילי"
+
+msgid "Tamil"
+msgstr "טמילית"
+
+msgid "Telugu"
+msgstr "טלגו"
+
+msgid "Tajik"
+msgstr "טג'יקית"
+
+msgid "Thai"
+msgstr "תאילנדית"
+
+msgid "Turkmen"
+msgstr "טורקמנית"
+
+msgid "Turkish"
+msgstr "טורקית"
+
+msgid "Tatar"
+msgstr "טטרית"
+
+msgid "Udmurt"
+msgstr "אודמורטית"
+
+msgid "Uyghur"
+msgstr "אויגורית"
+
+msgid "Ukrainian"
+msgstr "אוקראינית"
+
+msgid "Urdu"
+msgstr "אורדו"
+
+msgid "Uzbek"
+msgstr "אוזבקית"
+
+msgid "Vietnamese"
+msgstr "וייטנאמית"
+
+msgid "Simplified Chinese"
+msgstr "סינית פשוטה"
+
+msgid "Traditional Chinese"
+msgstr "סינית מסורתית"
+
+msgid "Messages"
+msgstr "הודעות"
+
+msgid "Site Maps"
+msgstr "מפות אתר"
+
+msgid "Static Files"
+msgstr "קבצים סטטיים"
+
+msgid "Syndication"
+msgstr "הפצת תכנים"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr "..."
+
+msgid "That page number is not an integer"
+msgstr "מספר העמוד אינו מספר שלם"
+
+msgid "That page number is less than 1"
+msgstr "מספר העמוד קטן מ־1"
+
+msgid "That page contains no results"
+msgstr "עמוד זה אינו מכיל תוצאות"
+
+msgid "Enter a valid value."
+msgstr "יש להזין ערך חוקי."
+
+msgid "Enter a valid domain name."
+msgstr "יש להזין שם מתחם חוקי."
+
+msgid "Enter a valid URL."
+msgstr "יש להזין URL חוקי."
+
+msgid "Enter a valid integer."
+msgstr "יש להזין מספר שלם חוקי."
+
+msgid "Enter a valid email address."
+msgstr "נא להזין כתובת דוא\"ל חוקית"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+"יש להזין 'slug' חוקי המכיל אותיות לטיניות, ספרות, קווים תחתונים או מקפים."
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+"יש להזין 'slug' חוקי המכיל אותיות יוניקוד, ספרות, קווים תחתונים או מקפים."
+
+#, python-format
+msgid "Enter a valid %(protocol)s address."
+msgstr "יש להזין כתובת %(protocol)s חוקית."
+
+msgid "IPv4"
+msgstr "IPv4"
+
+msgid "IPv6"
+msgstr "IPv6"
+
+msgid "IPv4 or IPv6"
+msgstr "IPv4 או IPv6"
+
+msgid "Enter only digits separated by commas."
+msgstr "יש להזין רק ספרות מופרדות בפסיקים."
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr "יש לוודא שערך זה הינו %(limit_value)s (כרגע %(show_value)s)."
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "יש לוודא שערך זה פחות מ או שווה ל־%(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "יש לוודא שערך זה גדול מ או שווה ל־%(limit_value)s."
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr "יש לוודא שערך זה מהווה מכפלה של %(limit_value)s."
+
+#, python-format
+msgid ""
+"Ensure this value is a multiple of step size %(limit_value)s, starting from "
+"%(offset)s, e.g. %(offset)s, %(valid_value1)s, %(valid_value2)s, and so on."
+msgstr ""
+"יש לוודא שערך זה מהווה מכפלה של צעד בגודל %(limit_value)s, החל מ־%(offset)s, "
+"לדוגמה: %(offset)s, %(valid_value1)s, %(valid_value2)s וכו'."
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"נא לוודא שערך זה מכיל תו %(limit_value)d לכל הפחות (מכיל %(show_value)d)."
+msgstr[1] ""
+"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל הפחות (מכיל %(show_value)d)."
+msgstr[2] ""
+"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל הפחות (מכיל %(show_value)d)."
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+"נא לוודא שערך זה מכיל תו %(limit_value)d לכל היותר (מכיל %(show_value)d)."
+msgstr[1] ""
+"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל היותר (מכיל %(show_value)d)."
+msgstr[2] ""
+"נא לוודא שערך זה מכיל %(limit_value)d תווים לכל היותר (מכיל %(show_value)d)."
+
+msgid "Enter a number."
+msgstr "נא להזין מספר."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] "נא לוודא שאין יותר מספרה %(max)s בסה\"כ."
+msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות בסה\"כ."
+msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות בסה\"כ."
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] "נא לוודא שאין יותר מספרה %(max)s אחרי הנקודה."
+msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות אחרי הנקודה."
+msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות אחרי הנקודה."
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] "נא לוודא שאין יותר מספרה %(max)s לפני הנקודה העשרונית"
+msgstr[1] "נא לוודא שאין יותר מ־%(max)s ספרות לפני הנקודה העשרונית"
+msgstr[2] "נא לוודא שאין יותר מ־%(max)s ספרות לפני הנקודה העשרונית"
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+"סיומת הקובץ \"%(extension)s\" אסורה. הסיומות המותרות הן: "
+"%(allowed_extensions)s."
+
+msgid "Null characters are not allowed."
+msgstr "תווי NULL אינם מותרים. "
+
+msgid "and"
+msgstr "ו"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr "%(model_name)s·עם·%(field_labels)s·אלו קיימים כבר."
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr "המגבלה \"%(name)s\" הופרה."
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr "ערך %(value)r אינו אפשרות חוקית."
+
+msgid "This field cannot be null."
+msgstr "שדה זה אינו יכול להיות ריק."
+
+msgid "This field cannot be blank."
+msgstr "שדה זה אינו יכול להיות ריק."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "%(model_name)s·עם·%(field_label)s·זה קיימת כבר."
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+"%(field_label)s חייב להיות ייחודי עבור %(date_field_label)s %(lookup_type)s."
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "שדה מסוג: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr "הערך \"%(value)s\" חייב להיות True או False."
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr "\"%(value)s\" חייב להיות אחד מ־True, False, או None."
+
+msgid "Boolean (Either True or False)"
+msgstr "בוליאני (אמת או שקר)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "מחרוזת (עד %(max_length)s תווים)"
+
+msgid "String (unlimited)"
+msgstr "מחרוזת (ללא הגבלה)."
+
+msgid "Comma-separated integers"
+msgstr "מספרים שלמים מופרדים בפסיקים"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+"הערך \"%(value)s\" מכיל פורמט תאריך לא חוקי. חייב להיות בפורמט YYYY-MM-DD."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr "הערך \"%(value)s\" בפורמט הנכון (YYYY-MM-DD), אך אינו תאריך חוקי."
+
+msgid "Date (without time)"
+msgstr "תאריך (ללא שעה)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+"הערך \"%(value)s\" מכיל פורמט לא חוקי. הוא חייב להיות בפורמטYYYY-MM-DD HH:"
+"MM[:ss[.uuuuuu]][TZ]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+"הערך \"%(value)s\" בפורמט הנכון (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) אך אינו "
+"מהווה תאריך/שעה חוקיים."
+
+msgid "Date (with time)"
+msgstr "תאריך (כולל שעה)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr "הערך \"%(value)s\" חייב להיות מספר עשרוני."
+
+msgid "Decimal number"
+msgstr "מספר עשרוני"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+"הערך \"%(value)s\" מכיל פורמט לא חוקי. הוא חייב להיות בפורמט [DD] "
+"[[HH:]MM:]ss[.uuuuuu]."
+
+msgid "Duration"
+msgstr "משך"
+
+msgid "Email address"
+msgstr "כתובת דוא\"ל"
+
+msgid "File path"
+msgstr "נתיב קובץ"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr "“%(value)s” חייב להיות מספר נקודה צפה."
+
+msgid "Floating point number"
+msgstr "מספר עשרוני"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr "הערך '%(value)s' חייב להיות מספר שלם."
+
+msgid "Integer"
+msgstr "מספר שלם"
+
+msgid "Big (8 byte) integer"
+msgstr "מספר שלם גדול (8 בתים)"
+
+msgid "Small integer"
+msgstr "מספר שלם קטן"
+
+msgid "IPv4 address"
+msgstr "כתובת IPv4"
+
+msgid "IP address"
+msgstr "כתובת IP"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr "\"%(value)s\" חייב להיות אחד מ־None, True, או False."
+
+msgid "Boolean (Either True, False or None)"
+msgstr "בוליאני (אמת, שקר או כלום)"
+
+msgid "Positive big integer"
+msgstr "מספר שלם גדול וחיובי"
+
+msgid "Positive integer"
+msgstr "מספר שלם חיובי"
+
+msgid "Positive small integer"
+msgstr "מספר שלם חיובי קטן"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "Slug (עד %(max_length)s תווים)"
+
+msgid "Text"
+msgstr "טקסט"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+"הערך “%(value)s” מכיל פורמט לא חוקי. הוא חייב להיות בפורמט HH:MM[:ss[."
+"uuuuuu]]."
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+"הערך “%(value)s” בפורמט הנכון (HH:MM[:ss[.uuuuuu]]) אך אינו מהווה שעה חוקית."
+
+msgid "Time"
+msgstr "זמן"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Raw binary data"
+msgstr "מידע בינארי גולמי"
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr "\"%(value)s\" אינו UUID חוקי."
+
+msgid "Universally unique identifier"
+msgstr "מזהה ייחודי אוניברסלי"
+
+msgid "File"
+msgstr "קובץ"
+
+msgid "Image"
+msgstr "תמונה"
+
+msgid "A JSON object"
+msgstr "אובייקט JSON"
+
+msgid "Value must be valid JSON."
+msgstr "הערך חייב להיות JSON חוקי."
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r is not a valid choice."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "Foreign Key (הסוג נקבע לפי השדה המקושר)"
+
+msgid "One-to-one relationship"
+msgstr "יחס של אחד לאחד"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr "קשר %(from)s-%(to)s"
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr "קשרי %(from)s-%(to)s"
+
+msgid "Many-to-many relationship"
+msgstr "יחס של רבים לרבים"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ":?.!"
+
+msgid "This field is required."
+msgstr "יש להזין תוכן בשדה זה."
+
+msgid "Enter a whole number."
+msgstr "נא להזין מספר שלם."
+
+msgid "Enter a valid date."
+msgstr "יש להזין תאריך חוקי."
+
+msgid "Enter a valid time."
+msgstr "יש להזין שעה חוקית."
+
+msgid "Enter a valid date/time."
+msgstr "יש להזין תאריך ושעה חוקיים."
+
+msgid "Enter a valid duration."
+msgstr "יש להזין משך חוקי."
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "מספר הימים חייב להיות בין {min_days} ל־{max_days}."
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "לא נשלח שום קובץ. נא לבדוק את סוג הקידוד של הטופס."
+
+msgid "No file was submitted."
+msgstr "לא נשלח שום קובץ"
+
+msgid "The submitted file is empty."
+msgstr "הקובץ שנשלח ריק."
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] "נא לוודא ששם קובץ זה מכיל תו %(max)d לכל היותר (מכיל %(length)d)."
+msgstr[1] ""
+"נא לוודא ששם קובץ זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)."
+msgstr[2] ""
+"נא לוודא ששם קובץ זה מכיל %(max)d תווים לכל היותר (מכיל %(length)d)."
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "נא לשים קובץ או סימן את התיבה לניקוי, לא שניהם."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "נא להעלות תמונה חוקית. הקובץ שהעלת אינו תמונה או מכיל תמונה מקולקלת."
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית. %(value)s אינו בין האפשרויות הזמינות."
+
+msgid "Enter a list of values."
+msgstr "יש להזין רשימת ערכים"
+
+msgid "Enter a complete value."
+msgstr "יש להזין ערך שלם."
+
+msgid "Enter a valid UUID."
+msgstr "יש להזין UUID חוקי."
+
+msgid "Enter a valid JSON."
+msgstr "נא להזין JSON חוקי."
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ":"
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr "(שדה מוסתר %(name)s) %(error)s"
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+"המידע של ManagementForm חסר או שובש. שדות חסרים: %(field_names)s. יתכן "
+"שתצטרך להגיש דיווח באג אם הבעיה נמשכת."
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] "נא לשלוח טופס %(num)d לכל היותר."
+msgstr[1] "נא לשלוח %(num)d טפסים לכל היותר."
+msgstr[2] "נא לשלוח %(num)d טפסים לכל היותר."
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] "נא לשלוח טופס %(num)dאו יותר."
+msgstr[1] "נא לשלוח %(num)d טפסים או יותר."
+msgstr[2] "נא לשלוח %(num)d טפסים או יותר."
+
+msgid "Order"
+msgstr "מיון"
+
+msgid "Delete"
+msgstr "מחיקה"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "נא לתקן את הערכים הכפולים ל%(field)s."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "נא לתקן את הערכים הכפולים ל%(field)s, שערכים בו חייבים להיות ייחודיים."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"נא לתקן את הערכים הכפולים %(field_name)s, שחייבים להיות ייחודיים ל%(lookup)s "
+"של %(date_field)s."
+
+msgid "Please correct the duplicate values below."
+msgstr "נא לתקן את הערכים הכפולים למטה."
+
+msgid "The inline value did not match the parent instance."
+msgstr "הערך הפנימי אינו תואם לאב."
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "יש לבחור אפשרות חוקית; אפשרות זו אינה אחת מהזמינות."
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr "\"%(pk)s\" אינו ערך חוקי."
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+"לא ניתן לפרש את %(datetime)s באזור הזמן %(current_timezone)s; הוא עשוי להיות "
+"דו־משמעי או לא קיים."
+
+msgid "Clear"
+msgstr "לסלק"
+
+msgid "Currently"
+msgstr "עכשיו"
+
+msgid "Change"
+msgstr "שינוי"
+
+msgid "Unknown"
+msgstr "לא ידוע"
+
+msgid "Yes"
+msgstr "כן"
+
+msgid "No"
+msgstr "לא"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "כן,לא,אולי"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "בית %(size)d "
+msgstr[1] "%(size)d בתים"
+msgstr[2] "%(size)d בתים"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s ק\"ב"
+
+#, python-format
+msgid "%s MB"
+msgstr "%s מ\"ב"
+
+#, python-format
+msgid "%s GB"
+msgstr "%s ג\"ב"
+
+#, python-format
+msgid "%s TB"
+msgstr "%s ט\"ב"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s פ\"ב"
+
+msgid "p.m."
+msgstr "אחר הצהריים"
+
+msgid "a.m."
+msgstr "בבוקר"
+
+msgid "PM"
+msgstr "אחר הצהריים"
+
+msgid "AM"
+msgstr "בבוקר"
+
+msgid "midnight"
+msgstr "חצות"
+
+msgid "noon"
+msgstr "12 בצהריים"
+
+msgid "Monday"
+msgstr "שני"
+
+msgid "Tuesday"
+msgstr "שלישי"
+
+msgid "Wednesday"
+msgstr "רביעי"
+
+msgid "Thursday"
+msgstr "חמישי"
+
+msgid "Friday"
+msgstr "שישי"
+
+msgid "Saturday"
+msgstr "שבת"
+
+msgid "Sunday"
+msgstr "ראשון"
+
+msgid "Mon"
+msgstr "שני"
+
+msgid "Tue"
+msgstr "שלישי"
+
+msgid "Wed"
+msgstr "רביעי"
+
+msgid "Thu"
+msgstr "חמישי"
+
+msgid "Fri"
+msgstr "שישי"
+
+msgid "Sat"
+msgstr "שבת"
+
+msgid "Sun"
+msgstr "ראשון"
+
+msgid "January"
+msgstr "ינואר"
+
+msgid "February"
+msgstr "פברואר"
+
+msgid "March"
+msgstr "מרץ"
+
+msgid "April"
+msgstr "אפריל"
+
+msgid "May"
+msgstr "מאי"
+
+msgid "June"
+msgstr "יוני"
+
+msgid "July"
+msgstr "יולי"
+
+msgid "August"
+msgstr "אוגוסט"
+
+msgid "September"
+msgstr "ספטמבר"
+
+msgid "October"
+msgstr "אוקטובר"
+
+msgid "November"
+msgstr "נובמבר"
+
+msgid "December"
+msgstr "דצמבר"
+
+msgid "jan"
+msgstr "ינו"
+
+msgid "feb"
+msgstr "פבר"
+
+msgid "mar"
+msgstr "מרץ"
+
+msgid "apr"
+msgstr "אפר"
+
+msgid "may"
+msgstr "מאי"
+
+msgid "jun"
+msgstr "יונ"
+
+msgid "jul"
+msgstr "יול"
+
+msgid "aug"
+msgstr "אוג"
+
+msgid "sep"
+msgstr "ספט"
+
+msgid "oct"
+msgstr "אוק"
+
+msgid "nov"
+msgstr "נוב"
+
+msgid "dec"
+msgstr "דצמ"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "יאנ'"
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "פבר'"
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "מרץ"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "אפריל"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "מאי"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "יוני"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "יולי"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "אוג'"
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "ספט'"
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "אוק'"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "נוב'"
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "דצמ'"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "ינואר"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "פברואר"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "מרץ"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "אפריל"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "מאי"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "יוני"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "יולי"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "אוגוסט"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "ספטמבר"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "אוקטובר"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "נובמבר"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "דצמבר"
+
+msgid "This is not a valid IPv6 address."
+msgstr "זו אינה כתובת IPv6 חוקית."
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr "%(truncated_text)s…"
+
+msgid "or"
+msgstr "או"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] "שנה"
+msgstr[1] "שנתיים"
+msgstr[2] "%(num)d שנים"
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] "חודש"
+msgstr[1] "חודשיים"
+msgstr[2] "%(num)d חודשים"
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] "שבוע"
+msgstr[1] "שבועיים"
+msgstr[2] "%(num)d שבועות"
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] "יום"
+msgstr[1] "יומיים"
+msgstr[2] "%(num)d ימים"
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] "שעה"
+msgstr[1] "שעתיים"
+msgstr[2] "%(num)d שעות"
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] "דקה"
+msgstr[1] "%(num)d דקות"
+msgstr[2] "%(num)d דקות"
+
+msgid "Forbidden"
+msgstr "אסור"
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "אימות CSRF נכשל. הבקשה בוטלה."
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+"הודעה זו מופיעה מאחר ואתר ה־HTTPS הזה דורש מהדפדפן שלך לשלוח \"Referer "
+"header\", אך הוא לא נשלח. זה נדרש מסיבות אבטחה, כדי להבטיח שהדפדפן שלך לא "
+"נחטף ע\"י צד שלישי."
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+"אם ביטלת \"Referer\" headers בדפדפן שלך, נא לאפשר אותם מחדש, לפחות עבור אתר "
+"זה, חיבורי HTTPS או בקשות \"same-origin\"."
+
+msgid ""
+"If you are using the tag or "
+"including the “Referrer-Policy: no-referrer” header, please remove them. The "
+"CSRF protection requires the “Referer” header to do strict referer checking. "
+"If you’re concerned about privacy, use alternatives like for links to third-party sites."
+msgstr ""
+"אם השתמשת בתגאו הוספת header "
+"של “Referrer-Policy: no-referrer”, נא להסיר אותם. הגנת ה־CSRF דורשת "
+"“Referer” header לבדיקת ה־referer. אם פרטיות מדאיגה אותך, ניתן להשתמש "
+"בתחליפים כמו לקישור אל אתרי צד שלישי."
+
+msgid ""
+"You are seeing this message because this site requires a CSRF cookie when "
+"submitting forms. This cookie is required for security reasons, to ensure "
+"that your browser is not being hijacked by third parties."
+msgstr ""
+"הודעה זו מופיעה מאחר ואתר זה דורש עוגיית CSRF כאשר שולחים טפסים. עוגיה זו "
+"נדרשת מסיבות אבטחה, כדי לוודא שהדפדפן שלך לא נחטף על ידי אחרים."
+
+msgid ""
+"If you have configured your browser to disable cookies, please re-enable "
+"them, at least for this site, or for “same-origin” requests."
+msgstr ""
+"אם ביטלת עוגיות בדפדפן שלך, נא לאפשר אותם מחדש לפחות עבור אתר זה או בקשות "
+"“same-origin”."
+
+msgid "More information is available with DEBUG=True."
+msgstr "מידע נוסף זמין עם "
+
+msgid "No year specified"
+msgstr "לא צוינה שנה"
+
+msgid "Date out of range"
+msgstr "תאריך מחוץ לטווח"
+
+msgid "No month specified"
+msgstr "לא צוין חודש"
+
+msgid "No day specified"
+msgstr "לא צוין יום"
+
+msgid "No week specified"
+msgstr "לא צוין שבוע"
+
+#, python-format
+msgid "No %(verbose_name_plural)s available"
+msgstr "לא נמצאו %(verbose_name_plural)s"
+
+#, python-format
+msgid ""
+"Future %(verbose_name_plural)s not available because %(class_name)s."
+"allow_future is False."
+msgstr ""
+"לא נמצאו %(verbose_name_plural)s בזמן עתיד מאחר ש-%(class_name)s."
+"allow_future מוגדר False."
+
+#, python-format
+msgid "Invalid date string “%(datestr)s” given format “%(format)s”"
+msgstr "מחרוזת תאריך %(datestr)s אינה חוקית בפורמט %(format)s."
+
+#, python-format
+msgid "No %(verbose_name)s found matching the query"
+msgstr "לא נמצא/ה %(verbose_name)s התואם/ת לשאילתה"
+
+msgid "Page is not “last”, nor can it be converted to an int."
+msgstr "העמוד אינו \"last\" או לא ניתן להמרה למספר שם."
+
+#, python-format
+msgid "Invalid page (%(page_number)s): %(message)s"
+msgstr "עמוד לא חוקי (%(page_number)s): %(message)s"
+
+#, python-format
+msgid "Empty list and “%(class_name)s.allow_empty” is False."
+msgstr "רשימה ריקה ו־“%(class_name)s.allow_empty” הוא False."
+
+msgid "Directory indexes are not allowed here."
+msgstr "אינדקסים על תיקיה אסורים כאן."
+
+#, python-format
+msgid "“%(path)s” does not exist"
+msgstr "\"%(path)s\" אינו קיים"
+
+#, python-format
+msgid "Index of %(directory)s"
+msgstr "אינדקס של %(directory)s"
+
+msgid "The install worked successfully! Congratulations!"
+msgstr "ההתקנה עברה בהצלחה! מזל טוב!"
+
+#, python-format
+msgid ""
+"View release notes for Django %(version)s"
+msgstr ""
+"ראו הערות השחרור עבור Django %(version)s"
+
+#, python-format
+msgid ""
+"You are seeing this page because DEBUG=True is in your settings file and you have not "
+"configured any URLs."
+msgstr ""
+"עמוד זה מופיע בעקבות המצאות DEBUG=True בקובץ ההגדרות שלך ולא הגדרת שום URLs."
+
+msgid "Django Documentation"
+msgstr "תיעוד Django"
+
+msgid "Topics, references, & how-to’s"
+msgstr "נושאים, הפניות ומדריכים לביצוע"
+
+msgid "Tutorial: A Polling App"
+msgstr "מדריך ללומד: יישום לסקרים."
+
+msgid "Get started with Django"
+msgstr "התחילו לעבוד עם Django"
+
+msgid "Django Community"
+msgstr "קהילת Django"
+
+msgid "Connect, get help, or contribute"
+msgstr "יצירת קשר, קבלת עזרה או השתתפות"
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__init__.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 00000000..caaecbb4
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/__init__.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/formats.cpython-311.pyc b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/formats.cpython-311.pyc
new file mode 100644
index 00000000..8ef6683c
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/__pycache__/formats.cpython-311.pyc differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/formats.py b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/formats.py
new file mode 100644
index 00000000..2cf92865
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/he/formats.py
@@ -0,0 +1,21 @@
+# This file is distributed under the same license as the Django package.
+#
+# The *_FORMAT strings use the Django date format syntax,
+# see https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
+DATE_FORMAT = "j בF Y"
+TIME_FORMAT = "H:i"
+DATETIME_FORMAT = "j בF Y H:i"
+YEAR_MONTH_FORMAT = "F Y"
+MONTH_DAY_FORMAT = "j בF"
+SHORT_DATE_FORMAT = "d/m/Y"
+SHORT_DATETIME_FORMAT = "d/m/Y H:i"
+# FIRST_DAY_OF_WEEK =
+
+# The *_INPUT_FORMATS strings use the Python strftime format syntax,
+# see https://docs.python.org/library/datetime.html#strftime-strptime-behavior
+# DATE_INPUT_FORMATS =
+# TIME_INPUT_FORMATS =
+# DATETIME_INPUT_FORMATS =
+DECIMAL_SEPARATOR = "."
+THOUSAND_SEPARATOR = ","
+# NUMBER_GROUPING =
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..2d535fb0
Binary files /dev/null and b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.mo differ
diff --git a/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po
new file mode 100644
index 00000000..20da3766
--- /dev/null
+++ b/backend/.venv/lib/python3.11/site-packages/django/conf/locale/hi/LC_MESSAGES/django.po
@@ -0,0 +1,1254 @@
+# This file is distributed under the same license as the Django package.
+#
+# Translators:
+# alkuma , 2013
+# Bharat Toge, 2022
+# Chandan kumar , 2012
+# Claude Paroz , 2020
+# Jannis Leidel , 2011
+# Pratik , 2013
+msgid ""
+msgstr ""
+"Project-Id-Version: django\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-05-17 05:23-0500\n"
+"PO-Revision-Date: 2022-07-25 06:49+0000\n"
+"Last-Translator: Bharat Toge\n"
+"Language-Team: Hindi (http://www.transifex.com/django/django/language/hi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hi\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+msgid "Afrikaans"
+msgstr "अफ़्रीकांस"
+
+msgid "Arabic"
+msgstr "अरबी"
+
+msgid "Algerian Arabic"
+msgstr "अल्जीरियाई अरब"
+
+msgid "Asturian"
+msgstr ""
+
+msgid "Azerbaijani"
+msgstr "आज़रबाइजानी"
+
+msgid "Bulgarian"
+msgstr "बलगारियन"
+
+msgid "Belarusian"
+msgstr "बेलारूसी"
+
+msgid "Bengali"
+msgstr "बंगाली"
+
+msgid "Breton"
+msgstr "ब्रेटन"
+
+msgid "Bosnian"
+msgstr "बोस्नियन"
+
+msgid "Catalan"
+msgstr "कटलान"
+
+msgid "Czech"
+msgstr "च्चेक"
+
+msgid "Welsh"
+msgstr "वेल्श"
+
+msgid "Danish"
+msgstr "दानिश"
+
+msgid "German"
+msgstr "जर्मन"
+
+msgid "Lower Sorbian"
+msgstr ""
+
+msgid "Greek"
+msgstr "ग्रीक"
+
+msgid "English"
+msgstr "अंग्रेज़ी "
+
+msgid "Australian English"
+msgstr "ऑस्ट्रेलियाई अंग्रेज़ी "
+
+msgid "British English"
+msgstr "ब्रिटिश अंग्रेजी"
+
+msgid "Esperanto"
+msgstr "एस्परेन्तो"
+
+msgid "Spanish"
+msgstr "स्पानिश"
+
+msgid "Argentinian Spanish"
+msgstr "अर्जेंटीना स्पैनिश "
+
+msgid "Colombian Spanish"
+msgstr "कोलंबियाई स्पेनी"
+
+msgid "Mexican Spanish"
+msgstr "मेक्सिकन स्पैनिश"
+
+msgid "Nicaraguan Spanish"
+msgstr "निकारागुआ स्पैनिश"
+
+msgid "Venezuelan Spanish"
+msgstr "वेनेज़ुएलाई स्पेनिश"
+
+msgid "Estonian"
+msgstr "एस्टोनियन"
+
+msgid "Basque"
+msgstr "बास्क"
+
+msgid "Persian"
+msgstr "पारसी"
+
+msgid "Finnish"
+msgstr "फ़िन्निश"
+
+msgid "French"
+msgstr "फ्रेंच"
+
+msgid "Frisian"
+msgstr "फ्रिसियन"
+
+msgid "Irish"
+msgstr "आयरिश"
+
+msgid "Scottish Gaelic"
+msgstr ""
+
+msgid "Galician"
+msgstr "गलिशियन"
+
+msgid "Hebrew"
+msgstr "हिब्रू"
+
+msgid "Hindi"
+msgstr "हिंदी"
+
+msgid "Croatian"
+msgstr "क्रोयेशियन"
+
+msgid "Upper Sorbian"
+msgstr ""
+
+msgid "Hungarian"
+msgstr "हंगेरियन"
+
+msgid "Armenian"
+msgstr ""
+
+msgid "Interlingua"
+msgstr "इंतर्लिंगुआ"
+
+msgid "Indonesian"
+msgstr "इन्डोनेशियन "
+
+msgid "Igbo"
+msgstr ""
+
+msgid "Ido"
+msgstr ""
+
+msgid "Icelandic"
+msgstr "आयिस्लान्डिक"
+
+msgid "Italian"
+msgstr "इटैलियन"
+
+msgid "Japanese"
+msgstr "जपानी"
+
+msgid "Georgian"
+msgstr "ज्योर्जियन"
+
+msgid "Kabyle"
+msgstr ""
+
+msgid "Kazakh"
+msgstr "कज़ाख"
+
+msgid "Khmer"
+msgstr "ख्मेर"
+
+msgid "Kannada"
+msgstr "कन्नड़"
+
+msgid "Korean"
+msgstr "कोरियन"
+
+msgid "Kyrgyz"
+msgstr ""
+
+msgid "Luxembourgish"
+msgstr "लक्संबर्गी"
+
+msgid "Lithuanian"
+msgstr "लिथुवेनियन"
+
+msgid "Latvian"
+msgstr "लात्वियन"
+
+msgid "Macedonian"
+msgstr "मेसिडोनियन"
+
+msgid "Malayalam"
+msgstr "मलयालम"
+
+msgid "Mongolian"
+msgstr "मंगोलियन"
+
+msgid "Marathi"
+msgstr "मराठी"
+
+msgid "Malay"
+msgstr "मलय भाषा"
+
+msgid "Burmese"
+msgstr "बर्मीज़"
+
+msgid "Norwegian Bokmål"
+msgstr ""
+
+msgid "Nepali"
+msgstr "नेपाली"
+
+msgid "Dutch"
+msgstr "डच"
+
+msgid "Norwegian Nynorsk"
+msgstr "नार्वेजियन नायनॉर्स्क"
+
+msgid "Ossetic"
+msgstr "ओस्सेटिक"
+
+msgid "Punjabi"
+msgstr "पंजाबी"
+
+msgid "Polish"
+msgstr "पोलिश"
+
+msgid "Portuguese"
+msgstr "पुर्तगाली"
+
+msgid "Brazilian Portuguese"
+msgstr "ब्रजिलियन पुर्तगाली"
+
+msgid "Romanian"
+msgstr "रोमानियन"
+
+msgid "Russian"
+msgstr "रूसी"
+
+msgid "Slovak"
+msgstr "स्लोवाक"
+
+msgid "Slovenian"
+msgstr "स्लोवेनियन"
+
+msgid "Albanian"
+msgstr "अल्बेनियन्"
+
+msgid "Serbian"
+msgstr "सर्बियन"
+
+msgid "Serbian Latin"
+msgstr "सर्बियाई लैटिन"
+
+msgid "Swedish"
+msgstr "स्वीडिश"
+
+msgid "Swahili"
+msgstr "स्वाहिली"
+
+msgid "Tamil"
+msgstr "तमिल"
+
+msgid "Telugu"
+msgstr "तेलुगु"
+
+msgid "Tajik"
+msgstr ""
+
+msgid "Thai"
+msgstr "थाई"
+
+msgid "Turkmen"
+msgstr ""
+
+msgid "Turkish"
+msgstr "तुर्किश"
+
+msgid "Tatar"
+msgstr "तातार"
+
+msgid "Udmurt"
+msgstr "उद्मर्त"
+
+msgid "Ukrainian"
+msgstr "यूक्रानियन"
+
+msgid "Urdu"
+msgstr "उर्दू"
+
+msgid "Uzbek"
+msgstr "उज़्बेक"
+
+msgid "Vietnamese"
+msgstr "वियतनामी"
+
+msgid "Simplified Chinese"
+msgstr "सरल चीनी"
+
+msgid "Traditional Chinese"
+msgstr "पारम्परिक चीनी"
+
+msgid "Messages"
+msgstr "संदेश"
+
+msgid "Site Maps"
+msgstr "साइट मैप"
+
+msgid "Static Files"
+msgstr "स्थिर फ़ाइलें"
+
+msgid "Syndication"
+msgstr "सिंडिकेशन"
+
+#. Translators: String used to replace omitted page numbers in elided page
+#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10].
+msgid "…"
+msgstr ""
+
+msgid "That page number is not an integer"
+msgstr "यह पृष्ठ संख्या पूर्णांक नहीं है"
+
+msgid "That page number is less than 1"
+msgstr "यह पृष्ठ संख्या 1 से कम है "
+
+msgid "That page contains no results"
+msgstr "उस पृष्ठ पर कोई परिणाम नहीं हैं"
+
+msgid "Enter a valid value."
+msgstr "एक मान्य मूल्य दर्ज करें"
+
+msgid "Enter a valid URL."
+msgstr "वैध यू.आर.एल भरें ।"
+
+msgid "Enter a valid integer."
+msgstr "एक मान्य पूर्ण संख्या दर्ज करें"
+
+msgid "Enter a valid email address."
+msgstr "वैध डाक पता प्रविष्ट करें।"
+
+#. Translators: "letters" means latin letters: a-z and A-Z.
+msgid ""
+"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens."
+msgstr ""
+
+msgid ""
+"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or "
+"hyphens."
+msgstr ""
+
+msgid "Enter a valid IPv4 address."
+msgstr "वैध आइ.पि वी 4 पता भरें ।"
+
+msgid "Enter a valid IPv6 address."
+msgstr "वैध IPv6 पता दर्ज करें."
+
+msgid "Enter a valid IPv4 or IPv6 address."
+msgstr "वैध IPv4 या IPv6 पता दर्ज करें."
+
+msgid "Enter only digits separated by commas."
+msgstr "अल्पविराम अंक मात्र ही भरें ।"
+
+#, python-format
+msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)."
+msgstr ""
+"सुनिश्चित करें कि यह मान %(limit_value)s (यह\n"
+" %(show_value)s है) है ।"
+
+#, python-format
+msgid "Ensure this value is less than or equal to %(limit_value)s."
+msgstr "सुनिश्चित करें कि यह मान %(limit_value)s से कम या बराबर है ।"
+
+#, python-format
+msgid "Ensure this value is greater than or equal to %(limit_value)s."
+msgstr "सुनिश्चित करें यह मान %(limit_value)s से बड़ा या बराबर है ।"
+
+#, python-format
+msgid "Ensure this value is a multiple of step size %(limit_value)s."
+msgstr ""
+
+#, python-format
+msgid ""
+"Ensure this value has at least %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at least %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure this value has at most %(limit_value)d character (it has "
+"%(show_value)d)."
+msgid_plural ""
+"Ensure this value has at most %(limit_value)d characters (it has "
+"%(show_value)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Enter a number."
+msgstr "एक संख्या दर्ज करें ।"
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s digit in total."
+msgid_plural "Ensure that there are no more than %(max)s digits in total."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Ensure that there are no more than %(max)s decimal place."
+msgid_plural "Ensure that there are no more than %(max)s decimal places."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"Ensure that there are no more than %(max)s digit before the decimal point."
+msgid_plural ""
+"Ensure that there are no more than %(max)s digits before the decimal point."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid ""
+"File extension “%(extension)s” is not allowed. Allowed extensions are: "
+"%(allowed_extensions)s."
+msgstr ""
+
+msgid "Null characters are not allowed."
+msgstr ""
+
+msgid "and"
+msgstr "और"
+
+#, python-format
+msgid "%(model_name)s with this %(field_labels)s already exists."
+msgstr ""
+
+#, python-format
+msgid "Constraint “%(name)s” is violated."
+msgstr ""
+
+#, python-format
+msgid "Value %(value)r is not a valid choice."
+msgstr ""
+
+msgid "This field cannot be null."
+msgstr "यह मूल्य खाली नहीं हो सकता ।"
+
+msgid "This field cannot be blank."
+msgstr "इस फ़ील्ड रिक्त नहीं हो सकता है."
+
+#, python-format
+msgid "%(model_name)s with this %(field_label)s already exists."
+msgstr "इस %(field_label)s के साथ एक %(model_name)s पहले से ही उपस्थित है ।"
+
+#. Translators: The 'lookup_type' is one of 'date', 'year' or
+#. 'month'. Eg: "Title must be unique for pub_date year"
+#, python-format
+msgid ""
+"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s."
+msgstr ""
+
+#, python-format
+msgid "Field of type: %(field_type)s"
+msgstr "फील्ड के प्रकार: %(field_type)s"
+
+#, python-format
+msgid "“%(value)s” value must be either True or False."
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” value must be either True, False, or None."
+msgstr ""
+
+msgid "Boolean (Either True or False)"
+msgstr "बूलियन (सही अथवा गलत)"
+
+#, python-format
+msgid "String (up to %(max_length)s)"
+msgstr "स्ट्रिंग (अधिकतम लम्बाई %(max_length)s)"
+
+msgid "Comma-separated integers"
+msgstr "अल्पविराम सीमांकित संख्या"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid "
+"date."
+msgstr ""
+
+msgid "Date (without time)"
+msgstr "तिथि (बिना समय)"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[."
+"uuuuuu]][TZ] format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]"
+"[TZ]) but it is an invalid date/time."
+msgstr ""
+
+msgid "Date (with time)"
+msgstr "तिथि (समय के साथ)"
+
+#, python-format
+msgid "“%(value)s” value must be a decimal number."
+msgstr ""
+
+msgid "Decimal number"
+msgstr "दशमलव संख्या"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[."
+"uuuuuu] format."
+msgstr ""
+
+msgid "Duration"
+msgstr "अवधि"
+
+msgid "Email address"
+msgstr "ईमेल पता"
+
+msgid "File path"
+msgstr "संचिका पथ"
+
+#, python-format
+msgid "“%(value)s” value must be a float."
+msgstr ""
+
+msgid "Floating point number"
+msgstr "चल बिन्दु संख्या"
+
+#, python-format
+msgid "“%(value)s” value must be an integer."
+msgstr ""
+
+msgid "Integer"
+msgstr "पूर्णांक"
+
+msgid "Big (8 byte) integer"
+msgstr "बड़ा (8 बाइट) पूर्णांक "
+
+msgid "Small integer"
+msgstr "छोटा पूर्णांक"
+
+msgid "IPv4 address"
+msgstr "IPv4 पता"
+
+msgid "IP address"
+msgstr "आइ.पि पता"
+
+#, python-format
+msgid "“%(value)s” value must be either None, True or False."
+msgstr ""
+
+msgid "Boolean (Either True, False or None)"
+msgstr "बूलियन (सही, गलत या कुछ नहीं)"
+
+msgid "Positive big integer"
+msgstr ""
+
+msgid "Positive integer"
+msgstr "धनात्मक पूर्णांक"
+
+msgid "Positive small integer"
+msgstr "धनात्मक छोटा पूर्णांक"
+
+#, python-format
+msgid "Slug (up to %(max_length)s)"
+msgstr "स्लग (%(max_length)s तक)"
+
+msgid "Text"
+msgstr "पाठ"
+
+#, python-format
+msgid ""
+"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] "
+"format."
+msgstr ""
+
+#, python-format
+msgid ""
+"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an "
+"invalid time."
+msgstr ""
+
+msgid "Time"
+msgstr "समय"
+
+msgid "URL"
+msgstr "यू.आर.एल"
+
+msgid "Raw binary data"
+msgstr ""
+
+#, python-format
+msgid "“%(value)s” is not a valid UUID."
+msgstr ""
+
+msgid "Universally unique identifier"
+msgstr ""
+
+msgid "File"
+msgstr "फाइल"
+
+msgid "Image"
+msgstr "छवि"
+
+msgid "A JSON object"
+msgstr "एक JSON डेटा object"
+
+msgid "Value must be valid JSON."
+msgstr "दर्ज किया गया डेटा वैध JSON होना अनिवार्य है"
+
+#, python-format
+msgid "%(model)s instance with %(field)s %(value)r does not exist."
+msgstr ""
+
+msgid "Foreign Key (type determined by related field)"
+msgstr "विदेशी कुंजी (संबंधित क्षेत्र के द्वारा प्रकार निर्धारित)"
+
+msgid "One-to-one relationship"
+msgstr "एक-एक संबंध"
+
+#, python-format
+msgid "%(from)s-%(to)s relationship"
+msgstr ""
+
+#, python-format
+msgid "%(from)s-%(to)s relationships"
+msgstr ""
+
+msgid "Many-to-many relationship"
+msgstr "बहुत से कई संबंध"
+
+#. Translators: If found as last label character, these punctuation
+#. characters will prevent the default label_suffix to be appended to the
+#. label
+msgid ":?.!"
+msgstr ""
+
+msgid "This field is required."
+msgstr "यह क्षेत्र अपेक्षित हैं"
+
+msgid "Enter a whole number."
+msgstr "एक पूर्ण संख्या दर्ज करें ।"
+
+msgid "Enter a valid date."
+msgstr "वैध तिथि भरें ।"
+
+msgid "Enter a valid time."
+msgstr "वैध समय भरें ।"
+
+msgid "Enter a valid date/time."
+msgstr "वैध तिथि/समय भरें ।"
+
+msgid "Enter a valid duration."
+msgstr "एक वैध अवधी दर्ज करें"
+
+#, python-brace-format
+msgid "The number of days must be between {min_days} and {max_days}."
+msgstr "दिनों की संख्या {min_days} और {max_days} के बीच होना अनिवार्य है "
+
+msgid "No file was submitted. Check the encoding type on the form."
+msgstr "कोई संचिका निवेदित नहीं हुई । कृपया कूटलेखन की जाँच करें ।"
+
+msgid "No file was submitted."
+msgstr "कोई संचिका निवेदित नहीं हुई ।"
+
+msgid "The submitted file is empty."
+msgstr "निवेदित संचिका खाली है ।"
+
+#, python-format
+msgid "Ensure this filename has at most %(max)d character (it has %(length)d)."
+msgid_plural ""
+"Ensure this filename has at most %(max)d characters (it has %(length)d)."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Please either submit a file or check the clear checkbox, not both."
+msgstr "कृपया या फ़ाइल प्रस्तुत करे या साफ जांचपेटी की जाँच करे,दोनों नहीं ."
+
+msgid ""
+"Upload a valid image. The file you uploaded was either not an image or a "
+"corrupted image."
+msgstr "वैध चित्र निवेदन करें । आप के द्वारा निवेदित संचिका अमान्य अथवा दूषित है ।"
+
+#, python-format
+msgid "Select a valid choice. %(value)s is not one of the available choices."
+msgstr "मान्य इच्छा चयन करें । %(value)s लभ्य इच्छाओं में उप्लब्ध नहीं हैं ।"
+
+msgid "Enter a list of values."
+msgstr "मूल्य सूची दर्ज करें ।"
+
+msgid "Enter a complete value."
+msgstr ""
+
+msgid "Enter a valid UUID."
+msgstr "एक वैध UUID भरें "
+
+msgid "Enter a valid JSON."
+msgstr "एक वैध JSON भरें "
+
+#. Translators: This is the default suffix added to form field labels
+msgid ":"
+msgstr ""
+
+#, python-format
+msgid "(Hidden field %(name)s) %(error)s"
+msgstr ""
+
+#, python-format
+msgid ""
+"ManagementForm data is missing or has been tampered with. Missing fields: "
+"%(field_names)s. You may need to file a bug report if the issue persists."
+msgstr ""
+
+#, python-format
+msgid "Please submit at most %(num)d form."
+msgid_plural "Please submit at most %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "Please submit at least %(num)d form."
+msgid_plural "Please submit at least %(num)d forms."
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Order"
+msgstr "छाटें"
+
+msgid "Delete"
+msgstr "मिटाएँ"
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s."
+msgstr "कृपया %(field)s के लिए डुप्लिकेट डेटा को सही करे."
+
+#, python-format
+msgid "Please correct the duplicate data for %(field)s, which must be unique."
+msgstr "कृपया %(field)s के डुप्लिकेट डेटा जो अद्वितीय होना चाहिए को सही करें."
+
+#, python-format
+msgid ""
+"Please correct the duplicate data for %(field_name)s which must be unique "
+"for the %(lookup)s in %(date_field)s."
+msgstr ""
+"कृपया %(field_name)s के लिए डुप्लिकेट डेटा को सही करे जो %(date_field)s में "
+"%(lookup)s के लिए अद्वितीय होना चाहिए."
+
+msgid "Please correct the duplicate values below."
+msgstr "कृपया डुप्लिकेट मानों को सही करें."
+
+msgid "The inline value did not match the parent instance."
+msgstr ""
+
+msgid "Select a valid choice. That choice is not one of the available choices."
+msgstr "मान्य विकल्प चयन करें । यह विकल्प उपस्थित विकल्पों में नहीं है ।"
+
+#, python-format
+msgid "“%(pk)s” is not a valid value."
+msgstr ""
+
+#, python-format
+msgid ""
+"%(datetime)s couldn’t be interpreted in time zone %(current_timezone)s; it "
+"may be ambiguous or it may not exist."
+msgstr ""
+
+msgid "Clear"
+msgstr "रिक्त करें"
+
+msgid "Currently"
+msgstr "फिलहाल"
+
+msgid "Change"
+msgstr "बदलें"
+
+msgid "Unknown"
+msgstr "अनजान"
+
+msgid "Yes"
+msgstr "हाँ"
+
+msgid "No"
+msgstr "नहीं"
+
+#. Translators: Please do not add spaces around commas.
+msgid "yes,no,maybe"
+msgstr "हाँ,नहीं,शायद"
+
+#, python-format
+msgid "%(size)d byte"
+msgid_plural "%(size)d bytes"
+msgstr[0] "%(size)d बाइट"
+msgstr[1] "%(size)d बाइट"
+
+#, python-format
+msgid "%s KB"
+msgstr "%s केबी "
+
+#, python-format
+msgid "%s MB"
+msgstr "%s मेबी "
+
+#, python-format
+msgid "%s GB"
+msgstr "%s जीबी "
+
+#, python-format
+msgid "%s TB"
+msgstr "%s टीबी"
+
+#, python-format
+msgid "%s PB"
+msgstr "%s पीबी"
+
+msgid "p.m."
+msgstr "बजे"
+
+msgid "a.m."
+msgstr "बजे"
+
+msgid "PM"
+msgstr "बजे"
+
+msgid "AM"
+msgstr "बजे"
+
+msgid "midnight"
+msgstr "मध्यरात्री"
+
+msgid "noon"
+msgstr "दोपहर"
+
+msgid "Monday"
+msgstr "सोमवार"
+
+msgid "Tuesday"
+msgstr "मंगलवार"
+
+msgid "Wednesday"
+msgstr "बुधवार"
+
+msgid "Thursday"
+msgstr "गुरूवार"
+
+msgid "Friday"
+msgstr "शुक्रवार"
+
+msgid "Saturday"
+msgstr "शनिवार"
+
+msgid "Sunday"
+msgstr "रविवार"
+
+msgid "Mon"
+msgstr "सोम"
+
+msgid "Tue"
+msgstr "मंगल"
+
+msgid "Wed"
+msgstr "बुध"
+
+msgid "Thu"
+msgstr "गुरू"
+
+msgid "Fri"
+msgstr "शुक्र"
+
+msgid "Sat"
+msgstr "शनि"
+
+msgid "Sun"
+msgstr "रवि"
+
+msgid "January"
+msgstr "जनवरी"
+
+msgid "February"
+msgstr "फ़रवरी"
+
+msgid "March"
+msgstr "मार्च"
+
+msgid "April"
+msgstr "अप्रैल"
+
+msgid "May"
+msgstr "मई"
+
+msgid "June"
+msgstr "जून"
+
+msgid "July"
+msgstr "जुलाई"
+
+msgid "August"
+msgstr "अगस्त"
+
+msgid "September"
+msgstr "सितमबर"
+
+msgid "October"
+msgstr "अक्टूबर"
+
+msgid "November"
+msgstr "नवमबर"
+
+msgid "December"
+msgstr "दिसमबर"
+
+msgid "jan"
+msgstr "जन"
+
+msgid "feb"
+msgstr "फ़र"
+
+msgid "mar"
+msgstr "मा"
+
+msgid "apr"
+msgstr "अप्र"
+
+msgid "may"
+msgstr "मई"
+
+msgid "jun"
+msgstr "जून"
+
+msgid "jul"
+msgstr "जुल"
+
+msgid "aug"
+msgstr "अग"
+
+msgid "sep"
+msgstr "सित"
+
+msgid "oct"
+msgstr "अक्ट"
+
+msgid "nov"
+msgstr "नव"
+
+msgid "dec"
+msgstr "दिस्"
+
+msgctxt "abbrev. month"
+msgid "Jan."
+msgstr "जनवरी."
+
+msgctxt "abbrev. month"
+msgid "Feb."
+msgstr "फ़रवरी."
+
+msgctxt "abbrev. month"
+msgid "March"
+msgstr "मार्च"
+
+msgctxt "abbrev. month"
+msgid "April"
+msgstr "अप्रैल"
+
+msgctxt "abbrev. month"
+msgid "May"
+msgstr "मई"
+
+msgctxt "abbrev. month"
+msgid "June"
+msgstr "जून"
+
+msgctxt "abbrev. month"
+msgid "July"
+msgstr "जुलाई"
+
+msgctxt "abbrev. month"
+msgid "Aug."
+msgstr "अग."
+
+msgctxt "abbrev. month"
+msgid "Sept."
+msgstr "सितम्बर."
+
+msgctxt "abbrev. month"
+msgid "Oct."
+msgstr "अक्टूबर"
+
+msgctxt "abbrev. month"
+msgid "Nov."
+msgstr "नवम्बर."
+
+msgctxt "abbrev. month"
+msgid "Dec."
+msgstr "दिसम्बर"
+
+msgctxt "alt. month"
+msgid "January"
+msgstr "जनवरी"
+
+msgctxt "alt. month"
+msgid "February"
+msgstr "फरवरी"
+
+msgctxt "alt. month"
+msgid "March"
+msgstr "मार्च"
+
+msgctxt "alt. month"
+msgid "April"
+msgstr "अप्रैल"
+
+msgctxt "alt. month"
+msgid "May"
+msgstr "मई"
+
+msgctxt "alt. month"
+msgid "June"
+msgstr "जून"
+
+msgctxt "alt. month"
+msgid "July"
+msgstr "जुलाई"
+
+msgctxt "alt. month"
+msgid "August"
+msgstr "अगस्त"
+
+msgctxt "alt. month"
+msgid "September"
+msgstr "सितंबर"
+
+msgctxt "alt. month"
+msgid "October"
+msgstr "अक्टूबर"
+
+msgctxt "alt. month"
+msgid "November"
+msgstr "नवंबर"
+
+msgctxt "alt. month"
+msgid "December"
+msgstr "दिसंबर"
+
+msgid "This is not a valid IPv6 address."
+msgstr ""
+
+#, python-format
+msgctxt "String to return when truncating text"
+msgid "%(truncated_text)s…"
+msgstr ""
+
+msgid "or"
+msgstr "अथवा"
+
+#. Translators: This string is used as a separator between list elements
+msgid ", "
+msgstr ", "
+
+#, python-format
+msgid "%(num)d year"
+msgid_plural "%(num)d years"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d month"
+msgid_plural "%(num)d months"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d week"
+msgid_plural "%(num)d weeks"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d day"
+msgid_plural "%(num)d days"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d hour"
+msgid_plural "%(num)d hours"
+msgstr[0] ""
+msgstr[1] ""
+
+#, python-format
+msgid "%(num)d minute"
+msgid_plural "%(num)d minutes"
+msgstr[0] ""
+msgstr[1] ""
+
+msgid "Forbidden"
+msgstr ""
+
+msgid "CSRF verification failed. Request aborted."
+msgstr "CSRF सत्यापन असफल रहा. Request निरस्त की गई "
+
+msgid ""
+"You are seeing this message because this HTTPS site requires a “Referer "
+"header” to be sent by your web browser, but none was sent. This header is "
+"required for security reasons, to ensure that your browser is not being "
+"hijacked by third parties."
+msgstr ""
+
+msgid ""
+"If you have configured your browser to disable “Referer” headers, please re-"
+"enable them, at least for this site, or for HTTPS connections, or for “same-"
+"origin” requests."
+msgstr ""
+
+msgid ""
+"If you are using the